本博客只作为个人学习笔记使用。
数据库操作
以创建名为”my”的数据库为例子:
创建数据库:create database my;
查看已有的数据库:show databases;
查看数据库:show create database my;
修改数据库编码:alter database my character set utf8;
创建数据库的同时指定编码:create database my character set utf8;
删除数据库:drop database [if exists] my;
使用数据库:use my;
查看当前使用的数据库:select database();
表操作
创建表(以创建表名为course的表为例):
查看数据库中有哪些表:show tables 或show tables from database_name
查看表的结构: desc table_name或 show columns from table_name
插入数据:insert into course values(‘lcl’,23,’boy’,1001);
插入数据指定字段: insert into course(name,age) values(‘hh’,22);
字段不允许为空:name varchar(20) not null
设置主键为自增的:alter table course modify id int(11) auto_increment; 还可以设置自增起始,设置表course主键从10000开始:alter table course auto_increment=10000;
给name字段添加唯一约束:alter table course modify name varchar(20) unique key;
默认约束:alter table course modify description varchar(50) default ‘无’;
外键
创建表stu,建立与表course关联的外键course_id
在表B中建立与父表A关联的外键后:当在建立外键时使用如下语句:
constraint foreign key(c_id) references course(id) on delete cascade
,那么删除父表的同时会删除子表中外键列与父表中参照列相等的记录。
cascade:对父表操作会更新字表中匹配的行
set null:对父表删除或更新,字表对应字段设置为null(前提是字表对应字段允许为null)
no action、restrict:拒绝对父表删除或更新
实际开发中很少使用物理的外键约束,很多都去使用逻辑的外键约束,因为物理的外键约束只有INNODB这种引擎才会支持,像另外的存储引擎如MYISAM则不支持。
表字段操作
表增加列:alter table stu add column name varchar(20) after c_id;
表增加多列:alter table stu add column(grade varchar(5),age int);
删除列:alter table stu drop column age;
删除多列:alter table stu drop name,drop grade;
删除外键约束:alter table stu drop foreign key ‘外键名’;
删除主键约束&#