(1)查询端口号
show variables like 'port';
(2)查询编码
show variables like 'character%';
(3)设置编码
set names utf8;
或用一下命令连接mysql服务器
mysql --default-character-set=gbk -uroot -proot
(4)查看建库时的语句(验证数据库库使用的编码)
show create database mydb1;
(5)查询建表的语句
show create table stu;
(6)退出数据库
quit
或
eixt
(7)查询所有进程端口
netstat -ano
(8)结束进程
taskkill /f /pid 进程编号
(9)查看数据库是否区分大小写
show variables like 'lower%';
(10)mysql默认不区分大小写,如果需要设置区分大小写可以在建表的时候需要区分大小写的字段后面加上
binary即可。比如:
create table user(name varchar(20) binary) charaset=utf8;
(11)查看事务的自动提交是否开启
show variables like 'autocommit';
(12)事务的自动提交开启/关闭
set autocommit=on/off;
(13)事务的操作
开始:begin
提交/回滚:commit/rollback
1、创建数据库
create database 数据库名;
create database 数据库名 character set utf8/gbk;
2、删除数据库
drop database 数据库名;
3、创建表
create table 表名(字段1 类型,字段2 类型……);
4、删除表
drop table 表名;
5、数据表中添加字段
alter table 表名 add 字段名 数据类型;
6、数据表中删除字段
alter table 表名 drop column 字段名;
7、修改字段的数据类型
alter table 表名 alter column 字段名 新数据类型;
8、查询所有数据库
show databases;
9、查询数据库中的所有表名
use 数据库名;
show tables;
10、查询表的字段类型
desc 表名;
对表的操作:
1、查询语句(Select)
Select *from 表名 where 查询条件;
2、删除语句(Delete)
Delete from 表名 where 删除条件;
(有自增类型的语句,删除之后加:alter table 表名 AUTO_INCREMENT=n;才可以继续这个编号添加数据,不然不连续) // n就是要删除的自增编号
3、插入语句(Insert)
Insert into表名(字段1、字段2……) values(‘值1’,’值2’……);
/*
(1)添加系统时间: mysql中系统时间是now()
方法一:insert into 表(时间列) values (now());
//即在添加时间的时候直接写:now()
方法二:insert into 表(时间列) select now();
*/
4、修改语句(Update),多个值用","分隔
Update 表名 set 字段名=新值 where 修改条件;
一、主键:primary key
(增加主键约束的列(字段)的值必须是非空+唯一的,一个表只有一个主键约束)
1、创建主键约束
(1)在建表时指定主键约束:
create table 表名(
字段1 数据类型 primary key,
字段2 数据类型,
……
);
create table 表名(
字段1 数据类型,
字段2 数据类型,
……
primary key(字段1)
);
(2)建表后指定主键约束
修改表结构:alter table 表名 add primary key(字段名);
2、删除主键约束:
修改表结构:alter table 表名 drop primary key;
3、复合主键
(1)在建表时指定主键约束
create table 【数据库.】表名称(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
...,
primary key(字段列表)
);
说明:复合主键不能在列后面加,需要单独指定
(2)建表后指定主键约束
alter table 【数据库.】表名称 add primary key(字段列表);
二、唯一键:unique key
指定了唯一键的列的值必须唯一,不能重复
(与主键的区别:主键不能为空,唯一键可以为空;主键约束,一个表只能有一个,而唯一键可以有多个)
1、创建唯一键:
(1)在建表时
create table 表名(
字段1 数据类型,
字段2 数据类型 unique key,
字段3 数据类型 unique key,
……
);
或:
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
……
unique key(字段2), //分别唯一
unique key(字段3)
);
create table 表名(
字段1 数据类型,
字段2 数据类型,
字段3 数据类型,
……
unique key(字段列表) //复合唯一
);
(2)在建表后
修改表结构:
alter table 表名 add unique key(字段名);
alter table 表名 add unique key(字段列表);
2、删除唯一键:
修改表结构:
alter table 表名 drop index 索引名;
(如果不知道索引名,通过该语句查询:show index from 表名;
(索引:index
我们的键约束(主键、唯一键、外键),都会自动创建索引。)
三、非空:not null 默认值:default+默认值
(不允许为空。)(设置默认值)
1、创建:
create table 表名(
字段1 数据类型 primary key,
字段2 数据类型 not null,
字段3 数据类型 unique key not null,
……
);
/* create table 表名(
字段1 数据类型 primary key,
字段2 数据类型 【unique key】【not null】【default 默认值】,
字段3 数据类型 【unique key】【not null】【default 默认值】,
……
); */
2、删除
修改表结构:
alter table 表名 modify gender char;
四、自增约束:auto_increment
(1、一个表只能有一个自增列;2、自增列必须是整型的;3、自增列必须是键列,例如:主键、唯一键。)
1、指定自增
create table 表名(
字段1 数据类型 primary key auto_increment,
字段2 数据类型 not null
……
);
五、外键约束:foreign key
(1、约束的是两张表的关系,需要两张表,或者一张表虚拟成两张表;2、两张表分为主表(父表)和从表(子表)外键的建立/指定是在从表(子表)上建立;3、被参考的表称为主表,主表的被参考列必须是主键或唯一键;4、一个表可以有多个外键。)
1、在建表时指定外键
要求:
(1)建表的顺序
先建主表,再建从表
从表的语法:
create table 【数据库名.】表名称(
字段1 数据类型 primary key,
字段2 数据类型 【unique key】【not null】【default 默认值】,
字段3 数据类型 【unique key】【not null】【default 默认值】,
...,
foreign key(从表的外键列) references 主表名(主表被参考的列名)
);
(2)删表的顺序
先删从表,再删除主表
(3)添加/修改从表数据
添加/修改从表记录时,引用主表的列的值必须是存在的。
例如:添加/修改员工表时,员工所在部门的值必须引用部门表的部门编号,保证该部门编号是存在的。
(4)删除/修改主表记录
A:默认情况下,如果主表的被参考列的值被引用,那么就不能轻易的被删除和修改。
例如:2号部门被员工引用了,那么这个2号部门就不能被删除,并且2这个编号值不能被修改。
foreign key(从表的外键列) references 主表名(主表被参考的列名) 【on update restrict/no action】 【on delete restrict/no action】
B:如果在建立外键时,指定了“级联”策略,那么可以做到级联修改和删除
foreign key(从表的外键列) references 主表名(主表被参考的列名) 【on update cascade】 【on delete cascade】
C:如果在建立外键时,指定了“置空”策略,那么可以做到主表的记录被修改或删除时,从表的对应字段变为NULL
foreign key(从表的外键列) references 主表名(主表被参考的列名) 【on update set null】 【on delete set null】
2、建表后指定外键
修改表结构:
alter table 从表名称 add foreign key (从表的字段) references 主表名(主表被参考的列名);