以下记录都是在cmd窗口中的使用
数据库的基本使用
select version(); 查看数据库当前版本。
select now(); 看时间。
show databases; 查看所有数据库。
create database 数据库名 charset utf8; 创建数据库,并且设置字符集为utf8,这样可以插入中文。
drop database 数据库名; 删除数据库,跑路。
use 数据库名; 切换使用的数据库;
select database(); 查看当前使用的是那个数据库。
表的基本使用
show tables; 查看该数据库中的表都有哪些。
desc 表名; 查看该表的结构。
show create table Customer; 看表的脚本。
drop table 表名; 删除表。
下面是创建表时的例子
create table Corporation( id int not null ); create table Customer( id int primary key auto_increment, #主键约束,这种的约束没见过还能起名的,自增会相对最大的那个自增,也可以指定值覆盖自增 name varchar(20) not null, #非空约束 sex varchar(2) check(sex='男' or sex='女'), #在mysql中没有效果,但是不报错 tel varchar(11) unique, #唯一约束 password varchar(20) default '111111', #默认约束 createTime timestamp default current_timestamp, #自动设定时间 Cid int not null references Corporation(id) # on delete cascade on update cascade, #on后面的部分可以省略,这样该是不能起名,这种在mysql中无效 # constraint abc foreign key (Pid) references Person(id) on delete cascade on update cascade 外键也可以这样写 # constraint 约束名 primary key (id, name) 联合主键的写法,当然可以只写一个 ); alter table 表名 add constraint 约束名 primary key (列名); #就是在表中的写法加上了选择表和add,多个列名用半角逗号隔开 alter table 表名 add constraint 约束名 foreign key (字段名) references 另一个表(字段名); #上面的constraint 约束名这段都可以省略,但是之后想在操作该约束会比较麻烦,约束名就是标识符不能用字符串。
经过在MySQL5.7.15中的测试,在表的创建阶段建立外键,即Cid int not null references Corporation(id)这样建立外键mysql不会报错但是无效,经外键查询语句查找并未找到,且添加不存在的外键也不会报错,剩下的两种方式有效。在表创建时的references在SQLServer上有效。
看外键的语句,两个一样。
select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where REFERENCED_TABLE_NAME='外键所处的表'; select TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_SCHEMA ='使用的数据库' AND REFERENCED_TABLE_NAME = '外键所处的表';
表的修改,没咋用过,以后在加。