以下操作都是在cmd中执行
-
登陆数据库服务器
# 登陆数据库服务器 mysql -uroot –p+password # 退出数据库服务器(三者任选一) quit \q exit
-
新建数据库
/*新建数据库*/ create database 数据库名; /*查询数据库服务器中有哪些数据库*/ show databases;
-
选择使用数据库并查看数据库下的所有表
/*选择数据库*/ use 数据库名; /*查看数据库下的所有表*/ show tables;
-
新建表和删除表
/*新建表*/ create TABLE pet( name VARCHAR(20), owner VARCHAR(20), specise VARCHAR(20), sex CHAR(1), brith DATE, death DATE ); /*删除表*/ drop table pet;
var()与varchar()的区别在于var()是定常的,哪怕存储的字符串没有达到"()“中数字的上限,var()依然会占用空格来填充空间.而varchar()则是不定长的,没有达到”()"中的上限则会自动去掉后面的空格
-
查看数据表的架构
describe score;
Field: 字段的名称
Type: 字段的类型,可以有int var varchar
Key : 是否是关键字 如可以定义为: primary key 或者 unique key …
Default: : 若是该字段没有主动设置值的时候,该字段的默认值是NULL
-
插入数据和删除数据
/*插入全部数据*/ Insert into score Values('104', '3-245', '88'); /*插入部分数据,未设置的写入默认值*/ Insert into score(s_no,c_no) Values('108','3-245');
/*删除数据行*/ delete from score where s_no='108'; /*添加字段*/ alter table score add(a varchar(11)); /*删除字段*/ alter table score drop a;
-
查看已有表的建表命名
show create table score;
-
创建视图
create view test as select s_no from score;
-
建表约束
-
主键约束:唯一确定一张表中的一条记录,增加主键约束之后,字段不重复而且不为空
/*建表*/ create table user( /*设置id为主键*/ id int PRIMARY KEY, name VARCHAR(20) ); /*插入数据*/ INSERT INTO user VALUES (1,'张三'); /*删除已添加的主键约束*/ alter table user drop primary key; /*在创建好的表中添加主键约束*/ alter table user add primary key(id);
-
复合主键:所有的字段都不是相同的情况下可以允许其中的字段重复
CREATE TABLE user2( id INT, name VARCHAR(20), password VARCHAR(20), /*设置(id,name)为复合主键*/ PRIMARY key(id,name) ); INSERT INTO user2 VALUES (1,'老王','123456'); INSERT INTO user2 VALUES (2,'老王','123456');
-
自增约束:
CREATE TABLE user3( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) ); INSERT INTO user3(name) VALUES('张三'); INSERT INTO user3(name) VALUES('李四');
-
唯一约束:修饰的字段的值不能重复
CREATE TABLE user5( id INT unique, name VARCHAR(20) ); /*删除已添加的唯一约束*/ alter table user drop index id;
-
非空约束:该项不能为空
CREATE TABLE user4( id INT unique not null, name VARCHAR(20) );
-
默认约束:该字段存在默认值
CREATE TABLE user6( id INT primary key, name VARCHAR(20) default 'none' );
-
外键约束:涉及到两个表:父表、子表
/*父表*/ create table classes( id int primary key, name varchar(10) ); /*子表*/ create table classes( id int primary key, name varchar(10), class_id int, foreign key(class_id) references classes(id) );
父表中没有的数据值,在子表中是不能被使用的
若父表的记录被引用,则不能删除主表中的该记录
-
检查约束:检查字段的值是否为可选范围
create table tblteacher{ teaID int not null primary key comment '学号', teaName nvarchar(10) not null comment '姓名', teaSex nchar(1) not null comment '性别', teaTelphone char(11) comment '电话', constraint ck_tablteacher_teaSex check(teaSex in('男','女')) };
-