SQL 对大小写不敏感:SELECT 与 select 是相同的。
1.创建数据库:
CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] <数据库文件名>
比如创建名为test_1的数据库:
create database if not exists test_1;
#为避免因重复创建时系统显示的错误信息,使用IF NOT EXISTS选项创建数据库
2.查看已有的数据库
show databases;
3.打开数据库
use test_1;
4.修改数据库
修改数据库主要是修改数据库参数,使用ALTER DATABASE语句来实现修改数据库。其语法格式如下:
ALTER {DATABASE|SCHEMA} [数据库文件名][选项];
#修改数据库test_1的默认字符集和校对规则
alter database test_1
default character set=gbk #字符集
default collate=gbk_chinese_ci; #校对规则名
5.删除数据库
drop database if exists test_1;
6.建立“学生”表Student。学号是主码,姓名取值唯一
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码*/
Sname CHAR(20) UNIQUE, /* Sname取唯一值*/
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);
7.建立一个“课程”表Course
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40),
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno) );
Cpno是外码,被参照表是Course,被参照列是Cno,两者为同一表
8.建立一个学生选课表SC
CREATE TABLE SC
(Sno CHAR(9),
Cno CHAR(4),
Grade SMALLINT,
PRIMARY KEY (Sno,Cno),
/* 主码由两个属性构成,必须作为表级完整性进行定义*/
FOREIGN KEY (Sno) REFERENCES Student(Sno),
/* 表级完整性约束条件,Sno是外码,被参照表是Student */
FOREIGN KEY (Cno)REFERENCES Course(Cno)
/* 表级完整性约束条件, Cno是外码,被参照表是Course*/
);
9.数据类型
10.修改基本表
ALTER TABLE <表名>
[ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]
[ ADD <表级完整性约束>]
ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件
[ DROP [ COLUMN ] <列名> ]
DROP COLUMN子句用于删除表中的列
有外键约束的列不能删除
[ DROP CONSTRAINT<完整性约束名> ]
DROP CONSTRAINT子句用于删除指定的完整性约束条件
[modify COLUMN <列名><数据类型> ] ;
modify COLUMN子句用于修改原有的列定义,包括修改列名和数据类型
举例:
1)向Student表增加“入学时间”列,其数据类型为日期型
ALTER TABLE Student ADD S_entrance DATE;
#无论基本表中原来是否已有数据,新增加的列一律为空值
2)将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数。
ALTER TABLE Student modify COLUMN Sage INT;
3)增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);
4)删除Student表
#有外键约束的表不能直接删除,需要设置第一行代码
set foreign_key_checks=0;
DROP TABLE Student;
11.若表上建有视图,mysql可直接删除,但视图还在,无数据。
CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS';
DROP TABLE Student;