CREATE DATABASE test_sql 此图为SQLyog的左侧目录栏,前三个为本地自带数据库。将SQL语句全部选中运行(F8)后,F5刷新目录栏,出现了我们创建的数据库。
连接数据库: USE test_sql;
删除数据库: DROP DATABASE test_sql;
接下来就开始创建表了,在创建表之前先列出几种常用的数据类型 整数数据类型: -INT 大小:4字节 -BIGINT 大小:8字节 浮点数据类型: - FLOAT 大小:4字节 精度:7位小数 - DOUBLE 大小:8字节 精度:15位小数 字符串数据类型: - VARCHAR 范围:0-65535 日期数据类型: - DATE 大小:3字节 格式:YYYY - DATETIME 大小:8字节 格式:YYYY-MM-DD
创建表: CREATE TABLE <表名> (<列名> <列的数据类型> [<列的约束>]); 如: CREATE TABLE t_student( student_name VARCHAR(10), student_birthday DATETIME, student_phone INT, student_score FLOAT); 上表中我们创建了一张学生表,并定义了姓名、生日、电话、得分四列,列名后加上数据类型。其中要注意的是VARCHAR需要在括号内设置字符串的最大长度。 刷新之后就可以看到我们创建的数据库中多了一张表: 选择打开表可以直观的看到内容: 之后我们可以通过SQL语句也可以通过手动为表添加内容。
删除表: DROP TABLE t_student;
复制表: CREATE TABLE copy_student SELECT * FROM t_student; 如此我们便复制了一张名为copy_student的表,它包括t_student表中的内容与结构。注意:复制表的同时表的约束并不能复制过来。
只复制表结构而不复制表内容: CREATE TABLE copy_student SELECT * FROM t_student WHERE 1=0; 只需在WHERE条件中加入一个永不为真的值即可。
修改表 添加新列: ALTER TABLE t_student ADD student_address VARCHAR(50); 更改列: ALTER TABLE t_student CHANGE student_birthday student_age INT; 这里我们把学生生日列改为学生年龄列,CHANGE后第一个为旧列名,第二个为新列名。
删除列: ALTER TABLE t_student DROP COLUMN student_score;
数据库完整性 保证数据库的完整性是为了防止垃圾数据的产生,以免影响数据库的执行效率。这里简要说一些,因为毕竟不是理论类的文章,这里主要是整理汇总SQL语句。 分类: 1.实体完整性
保证一行数据是有效的
2.域完整性
保证一列数据是有效的
3.引用完整性
保证引用的编号是有效的
4.用户自定义完整性
保证自定义规则
实体完整性--主键约束:
PRIMARY KEY
主键列不能为空也不能重复,通常加在表的id列中。
CREATE TABLE t_student( student_id INT PRIMARY KEY, student_name VARCHAR(10), student_birthday DATETIME, student_phone INT, student_score FLOAT);
实体完整性--唯一约束: UNIQUE 唯一约束是指给定列的值必须唯一,与主键约束不同的是它可以为空。通常加在表中不能重复的信息中,如电话号码。 CREATE TABLE t_student( student_id INT PRIMARY KEY, student_name VARCHAR(10), student_birthday DATETIME, student_phone INT UNIQUE, student_score FLOAT);
域完整性--非空约束: NOT NULL 非空约束可以加在诸如姓名等列上。 CREATE TABLE t_student( student_id INT PRIMARY KEY, student_name VARCHAR(10) NOT NULL, student_birthday DATETIME, student_phone INT UNIQUE, student_score FLOAT);
域完整性--默认约束: 设定默认值后,可以在添加此列时不指定值,数据库会自动填充设定的默认值。 DEFAULT 现给学生表加入性别列,默认值设为“男”,这样添加新的学生信息时如果没有填写具体的性别均会默认为男性: CREATE TABLE t_student( student_id INT PRIMARY KEY, student_name VARCHAR(10) NOT NULL, student_sex VARCHAR(5) DEFAULT '男', student_birthday DATETIME, student_phone INT UNIQUE, student_score FLOAT);
引用完整性--外键约束: 外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束,则不允许该条数据的修改。 创建主表--班级表: CREATE TABLE t_class( class_id INT PRIMARY KEY, class_name VARCHAR(20) UNIQUE NOT NULL); ) 创建从表--学生表,并设置外键约束: CREATE TABLE t_student( student_id INT PRIMARY KEY, s_c_id INT REFERENCES t_class(class_id), student_name VARCHAR(10) NOT NULL, student_sex VARCHAR(5) DEFAULT '男', student_birthday DATETIME, student_phone INT UNIQUE, student_score FLOAT CONSTRAINT FOREIGN KEY(s_c_id) REFERENCES t_class(class_id); 红色标识的就是创建外键约束的方法,个人认为也是SQL语句中最难记的。
本篇博文先到这里,写起来才发现SQL比想像的多啊,所以初步打算分为三篇。第二篇讲数据增删改查这些操作、聚合函数及分组,第三篇讲SQL的子查询、组合查询以及连接查询。 感谢您的浏览,希望能对您有所帮助。 |
|