MySQL的基本语句(一)

SQL DML 和 DDL

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引
  1. 创建表

    CREATE TABLE tb_name(
      id int NOT NULL AUTO_INCREMENT, # 非空、自增声明
      name VARCHAR(30) UNIQUE, #添加字段的唯一约束
      update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, #设置时间戳默认值为当前时间
      last_updated TIMESTAMP NOT NULL ON UPDATE CURRENT_TIMESTAMP,#设置自动添加更新时间
      size ENUM( 'small', 'medium', 'large') DEFAULT 'small', #枚举类型声明
      PRIMARY KEY (id), #主键声明
      FOREIGN KEY (id) REFERENCES db_name(tb_field) #声明外键
    );
    
  2. 插入数据

    # 插入数据
    INSERT INTO tb_name VALUES ('Gates', 'Bill', 'ACC', 'Beijing');
    # 插入指定列的数据
    INSERT INTO tb_name (tb_field1, tb_field2) VALUES ('Gates', 'Bill');
    
  3. 数据查询

    # 基本查询
    SELECT * FROM tb_name;
    SELECT * FROM tb_name WHERE id = XXX;
    
    # MD5 加密,加密比较
    INSERT INTO user(name,password) VALUES("admin",md5("12345"));
    SELECT * FROM user WHERE name="admin" AND password=md5("12345");
    
    # 查询最 新 的一条数据
    1) SELECT * FROM tb_name ORDER BY date DESC LIMIT 1;
    2) SELECT * FROM tb_name WHERE date IN (SELECT max(tb_field) FROM tb_name);
    3) SELECT * FROM tb_name WHERE date = (SELECT max(tb_field) FROM tb_name);
    
    # 查询记录总数
    SELECT count(*) FROM tb_name;
    
    # 查询前十条数据
    SELECT * FROM tb_name LIMIT 10;
    
    # 查询平均值
    SELECT AVG(tb_field) FROM tb_name;
    SELECT name, AVG(tb_field) FROM tb_name GROUP BY name;
    
  4. 修改数据

    • 数据修改
    UPDATE tb_name SET tb_field1 = 'One', tb_field2 = 'Two' WHERE tb_field3 = '111';
    
    • 属性修改
    # 添加列
    ALTER TABLE tb_name ADD COLUMN state ENUM('1','0') NOT NULL DEFAULT '1';
    # 添加唯一約束
    1) ALTER TABLE tb_name ADD UNIQUE (name);
    2) CREATE UNIQUE INDEX [索引名称] ON tb_name(tb_field);
    # 更改列属性
    ALTER TABLE tb_name MODIFY COLUMN tb_field VARCHAR(50);
    # 更改列名
    ALTER TABLE tb_name RNAME COLUMN tb_fieldA to tb_fieldB;
    ALTER TABLE tb_name CHANGE tb_fieldA tb_fieldB varchar(255);
    
  5. 删除数据

    # 删除一个记录
    DELETE FROM tb_name WHERE name = 'Bill';
    # 删除所有行
    DELETE FROM tb_name;
    # 删除表
    DROP TABLE tb_name;
    # 删除数据库
    DROP DATABASE db_name;
    # 删除索引
    ALTER TABLE tb_name DROP INDEX [索引名称];
    # 删除列
    ALTER TABLE tb_name  DROP COLUMN column_name;
    
  6. 其他

    # 导出数据库
    mysqldump -u [用户名] -p [数据库名] > [导出的文件名] 
    mysqldump -u username -p db_name > db_name.sql;
    
    # 导出数据表
    mysqldump -u username -p db_name tb_name> db_name.sql;
    
    # 导入数据库
    1) mysql -u username -p db_name < [xxx.sql];
    2) use db_name;
    source xxx.sql;
    
posted @ 2019-08-05 09:38  wyunuo  阅读(152)  评论(0编辑  收藏  举报