黑马程序员技术交流社区

标题: 【太原中心】 基本sql语句整理 [打印本页]

作者: 王高飞    时间: 2019-3-8 09:13
标题: 【太原中心】 基本sql语句整理
本帖最后由 王高飞 于 2019-3-8 09:13 编辑

  SQL语句:官方语言,结构化查询语言 任何的数据库都支持的
      数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
  SQL分类:   
        数据 定义 语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
        数据 操作 语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新(增删改)。关键字:insert,delete,update等
        数据 控制 语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
        数据 查询 语言:简称DQL(Data Query Language),用来查询数据库中表的记录(查)。关键字:select,from,where等
  SQL通用语法:
        SQL语句可以单行或多行书写,以分号结尾
        可使用空格和缩进来增强语句的可读性
        MySQL数据库的 SQL语句(内容区分) 不区分大小写,关键字建议使用大写  例如:SELECT * FROM user(user区分)。
        同样可以使用/* */或#或-- 的方式完成注释
  DDL数据定义语言:
        数据库操作(对库database的操作):
        
[Java] 纯文本查看 复制代码
  

          创建数据库:增
                create database 数据库名;   
                create database 数据库名 character set utf8  //创建数据库并同时指定编码集 mysql数据库在安装的时候已经选择默认码表utf-8
          查看数据库:查
                show databases;        // 查看数据库MySQL服务器中的所有的数据库
                show create database 数据库名;   // 查看某个数据库的定义的信息:
          删除数据库:删
                drop database 数据库名称;
          使用数据库:
                select database();   // 查看正在使用的数据库
                use 数据库名;   // 切换数据库
          修改数据库编码集:改
                alter  database 数据库名 charset 字符集;//修改编码集        
        表操作(对表table的操作):创建表前  先切换到指定数据库,表结构操作:alter,drop,show
             创建表:
               create table 表名(
               字段名 类型(最大长度) [约束],   //int date varchar double numeric(m,d)timestamp:时间戳,字符型的写长度。其他没必要写
               字段名 类型(最大长度) [约束],  // decimal(m,d)或numeric(m,d):压缩成m位(不包含小数点一共) d位小数  如果输入超出显示其能显示的最大值
               字段名 类型(最大长度) [约束]   //varchar必须写长度,其他可以不写  最后一个字段不加逗号
               );
             查看表:
               show tables;  //查看数据库中的所有表
               desc 表名; // 查看表结构
             删除表:
                drop table 表名;
             修改表结构:  alter
                alter table 表名 操作关键字 操作语句;
                添加列(字段)   +add address varchar(40);
                修改列:         +modify adress varchar(50);//40改成50
                替换列:         +change 旧的列 新的列 类型;
                删除列:         +drop column 列名;
            修改表编码:
                 alter table 表名 charset 字符集;//修改编码集
            更换表名:( 库名不能更换)
                 rename table 旧名 to 新名

                 
            
  DML数据操作语言:
      
[Java] 纯文本查看 复制代码
 

      插入表记录:insert 向表中插入字段  表中记录操作  insert ,update ,delete   //日期 :年-月-日
                insert into 表名 (字段1,字段2,字段3..) values  (值1,值2,值3..);  //向表中插入某些字段 字段值一一对应 字符串型日期型单引号
                insert into 表名 (字段1,字段2)values  (值1,值2)//可以为部分字段赋值 不赋值的默认为空
                insert into 表名 values (值1,值2,值3..);   //向表中插入所有字段,字段的顺序为创建表时的顺序 每个字段必须给值
                  注意:值与字段必须对应,个数相同,类型相同
                        值的数据大小必须在字段的长度范围内
                        除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
                        如果要插入空值,可以不写字段,或者插入 null。
                        自动增长列如果插入为null会自动增长,
                        但是如果写明插入值后就会按照写的值,接下来的值会自动增长
        更新表记录:update  
                update 表名 set 字段名=值,字段名=值,...;  //更新所有记录的指定字段
                update 表名 set 字段名=值,字段名=值,... where 条件;    // 更新符合条件记录的指定字段
                注意:列名的类型与修改的值要一致.
                        修改值得时候不能超过最大长度.
                           除了数值类型外,其它的字段类型的值必须使用引号引起
        删除表记录:delete
                    条件删除表中记录使用  delete from 表名 where 条件;  //删除符合条件的那条记录
                    Delete    delete from 表名  删除表中的所有数据,但不重置auto-increment记录数,保留了自动增长记录数。
                    Truncate  truncate table 表名 删除表中的所有数据,Truncate其实先删除整个表 然后再创建表,auto-increment记录数从1开始
                    截断表可以用于删除表中的所有数据。截断表命令还会回收所有索引的分配页。截断表的执行速度与不带where子句的delete(删除)命令相同,甚至比它还要快。delete(删除)一次删除一行数据,并且将每一行被删除的数据都作为一个事务记录日志;而truncate (截断)表则回收整个数据页,只记录很少的日志项。delete(删除)和truncate(截断)都会回收被数据占用的空间,以及相关的索引。只有表的拥有者可以截断表。
                    另外,truncate表之后,如果有自动主键的话,会恢复成默认值。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2