• SQL 基础应用


    #表属性

      - 列属性

     1 约束(一般建表时添加):
     2 **primary key** :主键约束
     3 设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。
     4 **not null**      :非空约束
     5 列值不能为空,也是表设计的规范,尽可能将所有的列设置为非空。可以设置默认值为0
     6 **unique key** :唯一键
     7 列值不能重复
     8 **unsigned** :无符号
     9 针对数字列,非负数。
    10 
    11 其他属性:
    12 **key** :索引
    13 可以在某列上建立索引,来优化查询,一般是根据需要后添加
    14 **default**           :默认值
    15 列中,没有录入值时,会自动使用default的值填充
    16 **auto_increment**:自增长
    17 针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)
    18 **comment ** : 注释

      - 表的属性

    1 存储引擎:
    2   InnoDB(默认的)
    3 字符集和排序规则:
    4   utf8       
    5   utf8mb4

    #DDL应用

      ##库定义

     1 #创建数据库
     2 create database school;
     3 create schema sch;
     4 show charset;
     5 show collation;
     6 CREATE DATABASE test CHARSET utf8;
     7 create database zyc charset utf8mb4 collate utf8mb4_bin;
     8 
     9 建库规范:
    10 1.库名不能有大写字母   
    11 2.建库要加字符集         
    12 3.库名不能有数字开头
    13 4. 库名要和业务相关
    1 #建库标准语句
    2 mysql> create database db charset utf8mb4;
    3 mysql> show create database testdb;
    1 #删除数据库
    2 mysql> drop database oldboy;
    1 #修改数据库
    2 SHOW CREATE DATABASE school;
    3 ALTER DATABASE school  CHARSET utf8;
    4 注意:修改字符集,修改后的字符集一定是原字符集的严格超集
    1 #查询库相关信息
    2 show databases;
    3 show create database oldboy;

      ##表定义

    1 #创建表
    2 create table stu(
    3 列1  属性(数据类型、约束、其他属性) ,
    4 列2  属性,
    5 列3  属性
    6 )
     1 #建表范例
     2 USE school;
     3 CREATE TABLE stu(
     4 id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
     5 sname   VARCHAR(255) NOT NULL COMMENT '姓名',
     6 sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
     7 sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
     8 sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
     9 intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
    10 ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';
    11 
    12 #建表规范
    13 表名小写
    14 不能是数字开头
    15 注意字符集和存储引擎
    16 表名和业务有关
    17 选择合适的数据类型
    18 每个列都要有注释
    19 每个列设置为非空,无法保证非空,用0来填充。
    1 #删除表
    2 drop table t1;
     1 #修改表
     2 ##添加一个新列
     3 DESC stu;
     4 ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL UNIQUE COMMENT 'qq号';
     5 
     6 ##在sname后添加一个新列【AFTER】
     7 ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE  COMMENT '微信号' AFTER sname ;
     8 
     9 ##在id列前加入一个新列【FIRST】
    10 ALTER TABLE stu ADD num INT NOT NULL COMMENT '数字' FIRST id;
    11 DESC stu;
    12 
    13 ##删除列
    14 ALTER TABLE stu DROP num;
    15 ALTER TABLE stu DROP qq;
    16 ALTER TABLE stu DROP wechat;
    17 
    18 ##修改列属性
    19 ALTER TABLE stu MODIFY sname VARCHAR(128)  NOT NULL ;
    20 
    21 ALTER TABLE stu CHANGE sgender sg CHAR(1) NOT NULL DEFAULT 'n' ;
    22 DESC stu;

      

  • 相关阅读:
    洛谷 P2053 :[SCOI2007]修车(拆点+最小费用流)
    LightOJ
    spark简单入门
    crontab 应用
    HttpClient的使用
    build.sbt的定义格式
    Scalatra
    SBT 构建scala eclipse开发
    mysql 存在更新,不存在插入
    Flash Vector例子
  • 原文地址:https://www.cnblogs.com/crossworld/p/11524243.html
Copyright © 2020-2023  润新知