库与表的操作

2021-01-04  本文已影响0人  Yazh

一、数据库相关操作

SELECT VERSION(); -- 查看版本
SELECT USER(); -- 查看当前用户
SHOW DATABASES; -- 查看所有库
USE world; -- 使用 world 库
SELECT DATABASE(); -- 查看当前库
SHOW TABLES; -- 查看当前数据库下所有的表
CREATE DATABASE[IF NOT EXISTS] world; -- 创建库
DROP DATABASE [IF EXISTS] world; -- 删除库

二、数据表相关操作

数据表 table : 数据库中表名唯一,由一个或多个列(column)组成,表中数据按行存储。

DESC table_name;  -- 查看表的数据类型
SHOW COLUMNS FROM table_name;

1. 创建表

CREATE TABLE [IF NOT EXISTS] tablename 
(字段名   字段类型            【字段约束】
id          int              NOT NULL AUTO_INCREMENT,
col1        int              NOT NULL DEFAULT 1,
col2      CHAR(20)           NULL,
PRIMARY KEY(id) );
  1. AUTO_INCREMENT: 每个表只允许一个AUTO_INCREMENT列,而且必须被索引
  2. 使用INSERT增加一行时,该列自动增量
  3. IF NOT EXISTS:用以判断当前数据库是否存在同名表

1. 常见约束

  1. NOT NULL 非空:用于限制该字段为必填项
  2. DEFAULT 默认:用于限制该字段没有显式插入值,则直接显式默认值
  3. PRIMARY KEY 用于限制该字段值不能重复,设置为主键列的字段默认不能为空【一个表只能有一个主键,当然可以是组合主键】
  4. UNIQUE 唯一:用于限制该字段值不能重复
  5. CHECK 检查:用于限制该字段值必须满足指定条件
    CHECK(age BETWEEN 1 AND 100)
  6. FOREIGN KEY 外键:用于限制两个表的关系,要求外键列的值必须来自于主表的关联列
    要求:
    ①主表的关联列和从表的关联列的类型必须一致,意思一样,名称无要求
    ②主表的关联列要求必须是主键
CONSTRAINT <约束名> FOREIGN KEY <字段名> REFERENCES <表名>(列名)

2. 数据类型

  1. 整型
    TYNYINT
    SMALLINT
    INT
    BIGINT
  2. 浮点型
    FLOAT(m, n)
    DOUBLE(m, n)
    DECIMAL(m, n)
    m 和 n 可选
  3. 字符型
    CHAR CHAR(n): n 可选
    VARCHAR(n): n 必选,n表示最多字符个数
    TEXT
  4. 日期型
    DATE
    TIME
    DATETIME
    TIMESTAMP
  5. BLOB
    存储图片数据

2. 插入数据

Mysql并不关心列的名字,仅关心列的位置,只要顺序对应就可以

INSERT INTO table1 (col1, col2, col3) 
VALUES(value1, value2, value3); -- 插入完整的行

INSERT INTO table1(col1, col2, col3)
VALUES(value1, value2, value3), (value1_, value2_, value3_); -- 插入多行

INSERT INTO table1(col1, col2, col3) 
SELECT col1, col2, col3 FROM table1; -- 插入检索数据

3. 更新表

尽量避免使用ALTER TABLE,在更改之前先对数据进行一次备份

ALTER TABLE stuinfo RENAME TO students; -- 修改表名
ALTER TABLE students ADD COLUMN borndate TIMESTAMP NOT NULL; -- 添加字段
ALTER TABLE students CHANGE COLUMN borndate birthday DATETIME NULL; -- 修改字段名
ALTER TABLE students MODIFY COLUMN birthday TIMESTAMP ; -- 修改字段类型
ALTER TABLE students DROP COLUMN birthday; -- 删除字段 

ALTER TABLE students ADD CONSTRAINT <约束名> FOREIGN KEY <字段名> REFERENCES <表名>(列名) 
ALTER TABLE students ADD PRIMARY KEY(字段名) -- 添加约束

4. 复制表

CREATE TABLE newTable2 LIKE major; -- 仅表结构 
CREATE TABLE newTable3 SELECT * FROM girls.`beauty`; -- 表结构与数据

5. 删除表

DROP TABLE [IF EXISTS] table1;

6. 更新与删除数据

不要省略WHERE字段!
否则会更新表中全部的值!

UPDATE table1 SET col1 = value1, col2= value2 WHERE condition -- 更新数据

DELETE FROM table1 WHERE condition -- 删除数据
上一篇下一篇

猜你喜欢

热点阅读