Mysql 第一章 初始MySQL
SQL 是什么?
- SQL,指结构化查询语言,全称是 Structured Query Language。
- SQL 让您可以访问和处理数据库。
- SQL 是一种 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言。
SQL 能做什么?
- SQL 面向数据库执行查询
- SQL 可从数据库取回数据
- SQL 可在数据库中插入新的记录
- SQL 可更新数据库中的数据
- SQL 可从数据库删除记录
- SQL 可创建新数据库
- SQL 可在数据库中创建新表
- SQL 可在数据库中创建存储过程
- SQL 可在数据库中创建视图
- SQL 可以设置表、存储过程和视图的权限
MySQL数据类型——数值类型
UNSIGNED属性:标识为无符号数
ZEROFILL属性:宽度(位数)不足以0填充
举例:
CREATE TABLE `tb_type` (
`sid` INT(4) ZEROFILL);
INSERT INTO ` tb_type1 ` VALUE(12) ,(1234),(123456);
注:若某数值字段指定了ZEROFILL属性,将自动添加UNSIGNED属性.
MySQL数据类型——字符串、日期类型
注:若某日期字段默认值为当前日期,一般设置为TIMESTAMP类型
如何创建表?
语法如下:
CREATE TABLE [IF NOT EXISTS] 表名 (
字段1 数据类型 [字段属性|约束][索引][注释],
……
字段n 数据类型 [字段属性|约束][索引][注释]
)[表类型][表字符集][注释];
举例:
注:多字段使用逗号分隔
保留字用撇号括起来
单行注释:#......
多行注释:/*……*/
字段的约束及属性
主键:
实例: CREATE TABLE student(
`studentNo` INT(4) PRIMARY KEY,
……);
注释:
实例: CREATE TABLE test (
`id` int(11) UNSIGNED COMMENT ‘编号’
)COMMENT='测试表’ ;
设置字符集编码:
实例: CREATE TABLE [IF NOT EXISTS] 表名(
#省略代码
)CHARSET = 字符集名;
练习一:在myschool数据库中创建学生表
操作如下:
查看表是否存在:
实例:USE myschool;
SHOW tables;
显示出来是这样:
查看表定义:
语法:DESCRIBE 表名;
或
DESC 表名;
举例:USE myschool;
DESCRIBE `student`;
注:避免DOS窗口乱码,可执行SET NAMES gbk;
显示出来是这样:
删除表:
语法:DROP TABLE [IF EXISTS] 表名;
举例:USE myschool;
DROP TABLE IF EXISTS `student`;
注:在删除表之前,先使用IF EXISTS语句验证表是否存在
练习二:myschool数据库中创建科目表(subject)
操作如下:
练习三:myschool数据库中创建成绩表(result)
操作如下:
修改表语法如下:
#修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
举例:ALTER TABLE students RENAME student
#添加字段
ALTER TABLE 表名 ADD 字段名 数据类型 [属性];
举例:ALTER TABLE result ADD chen INT(4) NOT NULL COMMENT'陈'
#修改字段
ALTER TABLE 表名 CHANGE 原字段名 新字段名 数据类型 [属性];
举例:ALTER TABLE student CHANGE gradeId gradeId INT(11)
#删除字段
ALTER TABLE 表名 DROP 字段名;
举例:ALTER TABLE result DROP chens
添加主键
语法:ALTER TABLE 表名 ADD CONSTRAINT 主键名
PRIMARY KEY 表名(主键字段);
问题:如何设置grade表中gradeId字段为主键?
答案:ALTER TABLE `grade` ADD CONSTRAINT `pk_grade`
PRIMARY KEY `grade`(`gradeId`);
举例:ALTER TABLE student ADD CONSTRAINT ky_student
PRIMARY KEY student(studentNo);
添加外键
语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名
FOREIGN KEY(外键字段)
REFERENCES 关联表名(关联字段);
问题:如何将student表的gradeId字段和grade表的gradeId字段建立外键关联?
答案:ALTER TABLE `student` ADD CONSTRAINT fk_student_grade
FOREIGN KEY(`gradeId`)
REFERENCES `grade` (`gradeId`);
举例:ALTER TABLE student
ADD CONSTRAINT fk_grade_stu_gradeid
FOREIGN KEY (gradeid)
REFERENCES grade(gid)
练习四:在test数据库中创建person表
1. 将表名修改为tb_person
2.删除出生日期字段
3.添加出生日期字段,数据类型为DATE类型
4.修改序号字段名(number)为id,类型为BIGINT类型
操作如下:
练习五:result表需要添加的内容
1.主键约束:学号、课程编号和日期构成组合主键
2.外键约束:主表student和从表result通过studentNo字段建立主外键关联
操作如下: