mysql数据库的一些基本操作(1)

查看当前登陆的用户

    mysql> select user();  

重置数据库管理员密码

    SET  PASSWORD  FOR root@localhost=PASSWORD(123456);

    mysql> set password for root@localhost=password(‘123456‘);重置用户密码

查看当前所在库

    mysql> select database();

    | database() |

    | NULL       |

查看所有库

    mysql> show databases;  

  | Database           |

    默认库

    | information_schema | 存储数据库服务器上已有的库和表的信息

    | mysql             | 授权库

    | performance_schema |数据库服务器运行的参数信息

    | test               |公共库,任何能登陆到服务器的用户都对此库有操作权限

Create既可以建库又可以建表

    Create  database 数据库名;

    mysql> create database student;    

    Query OK, 1 row affected (0.02 sec)  

        创建数据库的规则:

1、 数据库名具有唯一性

2、 数据库名区分大小写

3、 命名可以使用字母数字下划线

4、 不能纯数字

5、 不能使用特殊符号。

6、 不能用关键字

Use 数据库名,切换数据库

    mysql> use student

    Database changed

    存放在数据库的库和表都是以文件的形式存放在数据库目录下的。

查看所有表

    mysql> show tables; 

\c中止一条sql语句

删除一个库

    mysql> drop database wqe; 

建表

    Create  table 表名(

    字段名 类型(宽度) 约束条件,

    字段名 类型(宽度) 约束条件,

    。。。

    )

创建一个表

    mysql> create table stu_tab(age int); 

    Query OK, 0 rows affected (0.21 sec)

查看表结构

    mysql> desc stu_tab;

    | Field | Type    | Null | Key | Default | Extra |

    | age   | int(11) | YES  |     | NULL    |       |

表中插入信息记录

    mysql> insert into stu_tab(age)values(19);

    Query OK, 1 row affected (0.04 sec)

查看表中所有信息

    mysql> select from stu_tab; 

    | age  |

    |   19 |

Mysql数据类型:

    tinyint  微小整数占一个字节默认有符号类型后加unsigned表示无符号的

     smallint 小整数:占2个字节。

    int      大整数:占4个字节 

    floatM,N)单精度 M表示数字的总位数,N表示小数位的位数。

    double 双精度

    char定长

    varchar变长

    year   1个字节1901~2155,默认4位数字表示,当只用2  位数字赋值时,01~69视为2000~2069,而70~99视为1970~199900视为0000.

    date   4个字节0001-01-01 ~ 9999-12-31

    time   3个字节HH:MM:SS

    datetime  8个字节1000-01-01 00:00:00.000000~9999-12-31 00:00:00.000000

    timestamp  4个字节 1970-01-01 00:00:00.000000~2038-01-39 03:14:07.999999

    当未给timestamp字段赋值时,自动以当前时间赋值,而datetime字段默认赋值为0.

    now()      获取调用此函数时的系统日期时间

    sysdate()    执行时动态获得系统日期时间

    sleep(N)     休眠N

    curdate()    获取当前的系统日期

    curtime()    获取当前的系统时间

    month()     获取指定时间中的月份

    date()       获取指定时间的日期

    time()       获取指定时间的是时刻

          set(1,值2,值3.。。) 多选

    enum(值1,值2.。。)   单选

例:

create table stu_tab1(
    name char(3) not null,
    age int(3) not null default 25,
    class char(10) not null default 1312,
    sex enum("boy","girl") not null default "boy",
    love set("book","film","football","game"),
    startday date not null,
    address char(10) not null default "beijing",
    telephone char( 11) not null
    );


修改表结构

    操作:添加新字段 add

            格式:add 字段名  类型(宽度) 约束条件;

                  添加多个字段处理动作用逗号隔开。

    first指定添加字段到已有字段的最前面,不指定默认追加到已有     字段名末尾。

    after 指定添加字段到指定已有字段的下方。

    修改字段名 (类型约束条件等)change

格式:change 源字段名 新字段名 类型(宽度) 约束条件

    修改字段类型约束条件等 modify

         格式:modify 字段名 类型(宽度) 约束条件; 

    删除已有字段drop

         格式:drop 字段名;

命令格式:alter table 表名 处理动作;多个动作之间用逗号间隔。

例:

alter table stu_tab1 add stu_num varchar(4) not null first,add loves set(‘book‘,‘film‘,‘music‘,‘footbal‘) not null default ‘film,music‘ after name;
alter table stu_tab1 modify age tinyint(3) unsigned not null default 22;
alter table stu_tab1 add qq varchar(11),add mail varchar(50);
alter table stu_tab1 modify stu_num char(4) nut null;
alter table stu_tab1 modify stu_num char(4) not null;
alter table stu_tab1 drop sex,drop love;
alter table stu_tab1 add sex enum(‘m‘,‘w‘,‘x‘) not null default ‘m‘;
alter table stu_tab1 modify sex enum(‘m‘,‘w‘,‘x‘) not null default ‘m‘ after age;
alter table stu_tab1 change stu_num stu_id char(4) not null;  
alter table stu_tab1 add birthday date not null after sex,add startday year not null after birthday,add xf float(6,2) not null after mail;
delete from stu_tab1

复制表和表结构  

    复制表

    create  table  表名  sql查询语句

    create  table  表名  select  *  from  被复制表名复制时将表和内容全部复制。

    复制表结构。

    create table 表名 select  *  from  被复制表名 where 不存在的条件 (例如 1=2)。

    复制表和表结构的时候,原表的key字段属性不会被复制到新表。

修改表名

    alter  table  原表名  rename  新表名

    表中的记录不会受影响。

mysql支持的索引类型:

    INDEX:普通索引(index一个表中可以有多个INDEX字段对应的字段值允许重复  把经常做查询条件的字段设置为INDEX字段 INDEX字段的KEY标志为MUL

    UNIQUE:唯一索引(unique)一个表中可以有多个unique字段对应的字段值不允许重复 unique字段的key标志位uni  unique字段修改为不允许为NULL时,则此字段限制与主键相同

    FULLTEXT:全文索引(fulltext)

    PRIMARY KEY:主键(primary key)一个表中只能有一个PRIMARY KEY字段 主键字段值不允许冲去,且不允许为空 如果有多个字段都作为PRIMARY KEY,称为复合主键,必须在建表时一起创建  主键字段的KEY标志是PRI  通常与AUTO_INCREMENT连用 用主键字段作为操作的条件,能够唯一定位到一条记录。通常把记录的编号设为主键。

    FOREIGN  KEY:外键(foreign  key)作用:让当前表里指定字段的值参考另外一个表里字段的值 表的存储引擎要是innodb,只有innodb支持外键 表中外键字段的类型要与参考表的字段类型一致 外键字段要是索引类型的一种 一个表里只能存在一个外键

例:

index(字段名1,字段名2),  //建表时设置为INDEX字段,添加在最后。
show  indexfrom   库名.表名;//查看表中的索引详细信息
index_type                   //索引的算法
drop  index  索引名  on  表名;
create  index  索引名  on  表名(字段名);
unique(字段名)
update更新表记录
update  表名  set  字段名=‘字段值’;
create unique index 索引名 on 表名(字段名);
id  int(2)  auto_increment,  //auto_increment 自动增长,类型必须为数值型才可以用。必须是主键。
alter  table 表名  drop  primary  key;//删除主键,删除主键之前必须删除auto_increment。
primary  key(字段名)
也可以直接写在字段类型后面 primary key。
alter  table 表名 add  primary  key(id);//表存在之后在表中创建主键。
复合主键:只要复合主键字段的值不同时重复就可以。
创建复合主键
create  table  ser_tab(
ip  varchar(10)  not  null,
port  varchar(10)  not  null,
primary  key(ip,port)
);
建外键的语法格式
foreign  key(字段名)   references  表名(字段名) 
A表参照B表,前边为A表中的字段名,后为B表的表名字段名。
on  update   cascade 同步更新
on  delete    cascade  同步删除
当前表为从表,被参考的表为主表。
删除外键
alter  table  表名  drop   foreign  key  外键名;
外键名称查看建表过程查看到。 
alter table stu_tab1 add id int(3) primary key auto_increment  first;
create index name on stu_tab1(name,sex);
create unique index stu_id on stu_tab1(stu_id,telephone,qq);


查看当前服务器可以使用的存储引擎.

mysql> show engines;

| Engine                  | Support | Comment                           | Transactions | XA   | Savepoints |

| PERFORMANCE_SCHEMA   | YES     | Performance Schema                 | NO        | NO   | NO       |

| CSV                     | YES     | CSV storage engine                   | NO        | NO   | NO       |

建表的时候指定存储引擎

    create  table   表名(字段列表)engine=存储引擎名;

查看表的创建过程    

    show  create  table  表名

修改表的存储引擎

    alter  table   表名 engine=存储引擎名

查看当前的锁状态

    show  status   like table_lock%  %通配符



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。