• 4.Mysql之基本SQL语法(01)


     1.前言:

      我们在DBA运维中,常常会对Mysql数据进行进行增删改查等一系列操作,其中常用的语句分为三大类:DML语句、DDL语句、DCL语句。

    • DML    数据库操作语句,主要用于添加,删除,更新和查询,并检查数据完整性,常用的语句关键字主要包括insert  update  delete  select 
    • DDL   这些语句定义了不同的数据段,数据库,表,列,索引等数据对象,常用语句的关键字主要包括 create  drop   alter等
    • DCL     数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库,表,字段,用户的访问权限和安全级别,常用的关键字grant revoke等

    2.列属性

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

    3.SQL基本语法操作

      3.1.对数据库的操作

        1.创建数据库
          格式;create database 数据库名 charset=utf8;
          实例:create database Liulin charset=utf8;
        2.删除数据库
          格式:drop database 数据库名;
          实例:drop database Liulin;
        3.切换数据库
          格式; use 数据库名;
          实例; use aron;
        4.查看当前选择的数据库
          select database();
        5.创建数据库的时候要注意(建库规范):
          1.命名时不能有大写字母   2.建库要加字符集   3 库名不能有数字开头  4 库名要和业务相关

      3.2.表操作 

        1.查看当前数据库中所有表
          格式:show tables;
        2.创建表
          格式:create table 表名(列及类型)
          说明:auto_increment表明自增长
             primary key 主键
             not null 表示不为空
         3.删除表
          格式:drop table 表名;
          实例:drop table student;
        4.查看表结构;
          格式:desc 表名;
          实例:desc car
        5.查看建表语句:
          格式:show create table 表名;
          实例:show create table student;
        6.重命名表:
          格式: rename table 原表名 to 新表名;
          实例:rename table car to newCar;
        7.修改表;
          格式:alter table 表名 add|change|drop 列名 类型;
          实例:alter table newCar add isDelete bit default 0

      3.3.数据操作(增、删、改、查)

     1.insert
          a.全列插入:
            格式:insert into 表名 values(...)
            说明:主键列时自动增长,但是在全列插入时需要占位,通常使用0,插入成功以后以实际数据为准
            实例:insert into student values(0,”tom“,19,1,"北京",0)
           b.缺省插入
            格式:insert into 表名(列1,列2,....)values(值1,值2,...);
            实例:insert into student (name ,age, address)values("lilei",19,"上海");
          c.同时插入多条数据
            格式:insert into 表名 values(...),(...),...
            实例:insert into student values ("hanmeimei",19,"上海",0),("aron",19,"北京”,0)......
    
       2.delete
                 格式:delete from 表名 where 条件;
              实例:delete from student where id=4;
                 注意:没有条件是全部删除,慎重
    
      3.update
             格式:update 表名 set 列1=值1,列2=值2,....where 条件
             实例:update student set age=16 where id=7;
             注意:如果没有条件是全部列都修改,慎用
    
      4.select 
                格式:select * from 表名
            如果要经常根据score列进行查询,就可以对score列创建索引:说明:查询表中的全部数据
                实例:select * from student;

      3.4 索引的语法

      1.创建索引
            语法:
                ALTER TABLE 表名 ADD INDEX idx_name_score (name, score); ##name和score是表中的具体的字段 
            实例:       
                 ALTER TABLE 表名 ADD INDEX idx_score(索引名) (score);   
                 使用ADD INDEX 索引名 (score)就创建了一个名称为idx_score,
            使用列score的索引。索引名称是任意的,索引如果有多列,可以在括号里依次写上。   
    2.删除索引         alter table 表名 drop index 索引名;

       3.5创建一个完整的建表语句示例如下:  

    1 CREATE TABLE stu(
    2         id      INT NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '学号',
    3         sname   VARCHAR(255) NOT NULL COMMENT '姓名',
    4         sage    TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',
    5         sgender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别' ,
    6         sfz     CHAR(18) NOT NULL UNIQUE  COMMENT '身份证',
    7         intime  TIMESTAMP NOT NULL DEFAULT NOW() COMMENT '入学时间'
    8         ) ENGINE=INNODB CHARSET=utf8 COMMENT '学生表';
    First.sql

       

  • 相关阅读:
    python中将集合进行切割的方法
    Tomcat单库多实例部署
    (二) storm的基本使用
    工作流表结构解析
    [TCO 2012 Round 3A Level3] CowsMooing (数论,中国剩余定理,同余方程)
    [HEOI 2013 day2] 钙铁锌硒维生素 (线性代数,二分图匹配)
    [HEOI 2013 day2] SAO (树形动态规划)
    关于react和Angular的思考
    angular 中的modal
    从易到难,写一个JavaScript加载器之一
  • 原文地址:https://www.cnblogs.com/zmc60/p/13880097.html
Copyright © 2020-2023  润新知