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

   

posted on 2020-10-26 18:43  太白金星有点烦  阅读(110)  评论(0编辑  收藏  举报

导航