zoukankan      html  css  js  c++  java
  • MySql学习笔记三

    MySql学习笔记三

    4.DML(数据操作语言)

    插入:insert

    修改:update

    删除:delete

    4.1.插入语句

    语法:

    insert into 表名 (列名1,列名2,...) values (值1,值2,...), (值1,值2,...)...
    

    不可以为NULL的列必须插入值,可以为NULL的值要想插入NULL值,必须在values里写NULL

    也可以在字段列表里不写该字段,当新增时该字段的值就为NULL

    列的顺序时可以随便调换的,列数和值的个数必须一致

    插入整条数据时可以省去列名

    insert into 表名 values (值1,值2...), (值1,值2...)...
    

    values里面必须要插入所有字段的值,并且要按照字段的排列顺序排列

    可以嵌套子查询:

    insert into 表名 (值1,值2...) 子查询语句
    

    还有第二种方法可以插入数据,语法如下:

    insert into 表名
    set 字段名1 = 字段值1, 字段名2 = 字段值2, 字段名3 = 字段值3, ...;
    

    两种方法对比:

    插入多行 子查询
    value
    set X X

    4.2.修改语句

    语法:

    修改单表的记录

    update 表名 set 列1=值1, 列2=值2, ... where 筛选条件;
    

    修改单表记录

    sql92语法:

    update 表1 别名, 表2 别名
    set 列1=值1, 列2=值2, ... 
    where 连接条件
    AND 筛选条件
    

    sql99语法:

    update 表1 别名
    inner|right|left join 表2 别名
    on 连接条件
    set 列1=值1, 列2=值2, ...
    where 筛选条件
    

    4.3.删除语句

    语法

    单表删除:

    delete from 表名 where 筛选条件;
    

    删除整张表

    truncate table 表名;
    

    多表删除:

    sql92语法

    delete

    delete 要删除表的别名
    from 表1 别名, 表二 别名 ......
    where 连接条件
    and 筛选条件
    

    sql99语法

    delete 要删除表的别名
    from 表1 别名
    连接方式 表二 别名 
    ...
    where 筛选条件;
    

    delete和truncate对比

    使用where 效率 自增 返回值 事务
    delete 比truncate低 从断点点开始 返回受影响的行数 可以回滚
    truncate X 比delete高 从头开始 没有返回值 不能回滚

    5.DDL(数据定义语言)

    库和表的管理和操作

    创建:create

    删除:drop

    修改:alter

    5.1.库的管理

    5.1.1.创建

    语法:

    create database (if not exists) 库名;
    

    if not exists是如果不存在才创建

    通用写法:

    drop database if exists 库名;
    create database 库名;
    

    5.1.2.修改

    更改库的字符集

    alter database 库名 character set 字符集名;
    

    5.1.3.删除

    drop database 库名;
    

    5.2.表的管理

    5.2.1.创建

    语法:

    create table 表名{
    	列名 列的类型(长度) (约束),
    	列名 列的类型(长度) (约束),
    	列名 列的类型(长度) (约束),
    	...
    	列名 列的类型(长度) (约束)
    }
    

    通用写法:

    drop table if exists 表名;
    create table 表名{
    	列名 列的类型(长度) (约束),
    	列名 列的类型(长度) (约束),
    	列名 列的类型(长度) (约束),
    	...
    	列名 列的类型(长度) (约束)
    }
    

    5.2.2.修改

    修改列名:

    alter table 表名 change (column) 旧列名 新列名 列的类型;
    

    修改列的类型或约束:

    alter table 表名 modify column 列名 新类型 约束;
    

    添加新列

    alter table 表名 add column 新列名 列的类型 约束;
    

    删除列

    alter table 表名 drop column 列名;
    

    修改表名

    alter table 表名 rename to 新表名;
    

    5.2.3.删除

    语法:

    drop table (if exists)表名;
    

    5.2.4.复制

    仅仅复制表的结构

    create table 新表名 like 要复制的表名
    

    复制表的结构+数据

    create table 新表名
    select 要复制的字段 from 要复制的表名
    (where 筛选条件);
    

    仅仅复制表的部分结构

    create table 新表名
    select 要复制的字段 from 要复制的表名
    where 恒不成立的筛选条件 (例如 11 = 2 或者 0);
    

  • 相关阅读:
    TextWatcher 监视EditText的输入
    【Android】SqLitOpenHelper操作数据库
    【第一个开源项目】最完整的Andoird联系人操作,完美支持联系人的各种属性操作。
    Ext.ux.grid.RowEditor更新
    『转』如何判断Store加载完毕
    MyEclipse8.6安装svn插件
    『转』Eclipse中设置编码的方式
    『转』jsonlib json 格式 Date
    Spring Security的关键组件
    Ext.grid之numbercolumn格式化输出
  • 原文地址:https://www.cnblogs.com/ys1109/p/11407793.html
Copyright © 2011-2022 走看看