以下记录都是在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 tableCorporation(
idint not null);create tableCustomer(
idint primary keyauto_increment, #主键约束,这种的约束没见过还能起名的,自增会相对最大的那个自增,也可以指定值覆盖自增
namevarchar(20) not null, #非空约束
sexvarchar(2) check(sex='男' or sex='女'), #在mysql中没有效果,但是不报错
telvarchar(11) unique, #唯一约束
passwordvarchar(20) default '111111', #默认约束
createTimetimestamp default current_timestamp, #自动设定时间
Cidint 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='外键所处的表';selectTABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEfromINFORMATION_SCHEMA.KEY_COLUMN_USAGEwhere CONSTRAINT_SCHEMA ='使用的数据库' ANDREFERENCED_TABLE_NAME= '外键所处的表';
表的修改,没咋用过,以后在加。