数据库操作

--创建数据库
CREATE DATABASE database_name;
--删除数据库
DROP DATABASE database_name;
--选择数据库
use database_name;
--查看数据库的详细信息
SHOW DATABASES;
--创建数据表
CREATE TABLE table_name (column_name column_type,
                         column_name column_type,
                         column_name column_type...);
--删除数据表
DROP TABLE tanle_name;
--插入数据
INSERT INTO table_name (value1,value2...);
INSERT INTO table_name (field1,field2...)
                       VALUES
                       (value1,value2);
--修改数据
UPDATE table_name SET filed = new_value WHERE caluse;
--查看表结构的详细信息
DESCRIBE table_name;   
--查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][OFFSET M];

数据类型

数值类型

数据类型 大小
TINYINT 1Byte
SMALLINT 2Byte
INT 4Byte
BIGINT 8Byte
FLOAT 4Byte
DOUBLE 8Byte

日期/时间类型

数据类型 格式
DATE YYYY-MM-DD
TIME HH:MM:SS
YEAR YYYY
DATETIME YYYY-MM-DD HH:MM:SS
TIMESTAMP YYYYMMDD HHMMSS

字符串类型

数据类型 大小
CHAR(n) 固定长度,最多255个字符
VARCHAR(n) 固定长度,最多65535个字符
TINYTEXT 可变长度,最多255个字符
TEXT 可变长度,最多65535个字符

约束

约束种类

1. 主键约束 PRIMARY KEY
约束此项的值在表中唯一且非空

2. 自增约束 AUTO_INCRMENT
只有整型列才能设置此属性,且每个表只能定义一个AUTO_INCRMENT列

3. 唯一约束 UNIQUE KEY
保证值唯一,不发生重复

4. 非空约束 NOT NULL
值不允许为空

5.默认约束 DEFAULT
给此项值的默认值

6.外键约束 FOREIGEN KEY REFERENCES
此项值来自另一个表单

联合约束

添加,修改,删除约束

--添加约束
ALTER TABLE table_name ADD (column_name column_type ...);
--修改约束
ALTER TABLE table_name MODIFY column_name column_type PRIMARY KEY;
--删除约束
ALTER TABLE table_name DROP PRIMARY KEY;

练习

创建学生表练习

CREATE DATABASE test;

USE test;

CREATE TABLE students(
    id VARCHAR(20) PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    sex CHAR(2) NOT NULL,
    birth DATE DEFAULT '2000-01-01',
    class VARCHAR(20)
);

CREATE TABLE teachers(
    id VARCHAR(20) PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    sex CHAR(2) NOT NULL,
    birth DATE DEFAULT '1990-01-01',
    title varchar(20) DEFAULT '讲师',
    department varchar(20) NOT NULL
);

CREATE TABLE courses(
    id VARCHAR(20) PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    teacher VARCHAR(20) NOT NULL,
    FOREIGN KEY(teacher) REFERENCES teachers(id)
);

CREATE TABLE scores(
    student_id VARCHAR(20) NOT NULL,
    course_id VARCHAR(20) NOT NULL,
    score DECIMAL,
    PRIMARY KEY(student_id,course_id),
    FOREIGN KEY(student_id) REFERENCES students(id),
    FOREIGN KEY(course_id) REFERENCES courses(id)
);