目录
服务器:
客户端:
数据库操作:
增:
删:
改:
查:
数据表操作:增、删、改、查
增:
删:
改:
查:
添加约束:
数据库导入导出:
启动:sudo service mysql start
停止:sudo service mysql stop
重新启动:sudo service mysql restart
查看服务状态:sudo service mysql status
连接数据库:mysql -u root -p
增(Create)、删(Delete)、改(Update)、查(Read/Retrieve),在操作数据库时,所有的数据库语句都要以分号结束。
创建数据库:create database 数据库名;
create database 数据库名 character set utf8;
删除数据库:drop database 数据库名;
修改数据库编码:alter database 数据库名 charset=utf8;(可以在创建时就设定为utf8)
显示数据库创建信息:show create database 数据库名;
显示所有数据库:show databases;
显示当前数据库:select database();
*切换、使用数据库:use 数据库名;
创建一张新表:create table 表名(字段 数据类型,字段 数据类型,……);如:create table class(id int,name char(10),age int);
为已存在的表增加字段:alter table 表名 add 字段名 数据类型;
向表中添加数据:指定字段:insert into 表名(字段名,逗号隔开) values(值,与字段名一一对应); 不指定字段:insert into 表名 values(值,逗号隔开);
插入多条数据: insert into 表名 values(值,逗号隔开),(值,逗号隔开);字段名可以指定也可以不指定
删除一个表:drop table 表名;
删除一个字段:alter table 表名 drop 字段名;
删除全部数据:truncate 表名;没有事物,速度快,/delete from 表名;有事物操作,速度慢
删除满足条件的数据:delete from 表名 where 字段=值; where后是条件
只修改字段的数据类型:alter table 表名 modify 字段名 数据类型;
同时修改字段名和该字段名的数据类型:alter table 表名 change 原字段名 新字段名 数据类型;
更新所有数据:update 表名 set 字段名=值;
更新满足条件的数据:update 表名 set 字段名=值 where 字段名=值; where后写的是条件
查看表结构 :desc 表名;
查看所选数据库中所有的表:show tables;
显示创建表时的信息:show create table 表名;(使用\G,以记录条目形式显示,更清晰,如:show create table 表名 \G;)
查询表中指定字段内容:select 字段名 from 表名;
不指定字段查询:select * from 表名;
约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的准确性,完整性、唯一性,可靠性、联动性。
主键约束:让数据具有唯一性约束和非空约束,即在有主键约束的字段下添加相同数据或不给数据,会报错(一个表中最多只能有一个主键约束),语法:create table 表名(字段名 数据类型 primary key , 字段名 数据类型……);
后期添加主键约束:alter table 表名 add constraint 约束名 primary key(要添加约束的字段名); 删除主键约束:alter table 表名 drop primary key;
自动增长(配合主键):需要配合主键约束一起使用,如果字段没有设置主键约束,是不允许设置自动增长的,语法:create table 表名(字段名 数据类型 auto_increment primary key,字段名 数据类型……);
唯一性约束:保证不出现重复数据,不用配合主键约束,create table 表名(字段名 数据类型 unique,其它字段名和数据类型);
非空约束:不允许字段为空,create table 表名(字段名 数据类型 not null,其它字段);
默认约束:添加数据时,没有给值,该字段使用默认值,create table 表名(字段名 数据类型 default "默认内容",其它字段);
外键约束:让两表之间产生联动关系(被关联表中的字段必须是主键约束字段,而且外键约束语句要在所有字段写完之后再写),语法:create table 表1(字段x 数据类型 primary key,其它字段……);create table 表2(字段y 数据类型, 其它字段 ……,foreigh key(自身表中要关联的字段名) references 被关联表名(表1中的字段x));这样表2就关联到了表1,表2受到了表1的约束,要想删除表1,必须先删除表2; 后期添加外键约束:alter table 表名 add constraint 外键约束名 foreign key (设置外键的字段) references 被关联表名(被关联字段名); 删除外键约束:alter table 表名 drop foreign key 外键约束名;
使用数据库导入导出功能,可以对数据库进行备份、迁移等操作。
导出整个数据库:mysqldump -uroot -p 数据库名 > 目标文件.sql
导出库中指定表:mysqldump -uroot -p 数据库名 表名1 表名2... > 目标文件.sql
导入数据库:导入数据库前要先创建一个空数据库, 语法:mysql -uroot -p 数据库名 <要导入文件.sql