SQL使用

SQL使用



SQL:结构化查询语言


分类


DDL:数据定义语言.

    create,alter,drop...
DCL:数据控制语言

    if,grant
DML:数据操纵语言

    insert,delete,update
DQL:数据查询语言.
    Select

数据库操作


创建


    * create database 数据库名;
    * create database 数据库名 character set 字符集;
    * create database 数据库名 character set 字符集 collate 校对规则;

删除


   * drop database 数据库名称;

修改(名字不能修改)


   * alter database 数据库名 character set 字符集 collate 校对规则;


   * 查看所有的数据库:show databases;
   * 查看某个:show create database 数据库名;

其他


   * 切换数据库:use 数据库名;
   * 查看正在使用的数据库:select database();


表操作


创建(建表之前一定先选择数据库)


create table 表名(
  字段名 类型(长度) 约束,
 id int(11) primary key auto_increment,
 username varchar(20)
);


  类型:




float/double   float/double(n,m)   长度n,小数m位
char/String char/varchar(char固定长度字符串,varchar可变长度的字符串)
Date date,time,datetime,timestamp
文件类型 BLOB、TEXT   TEXT指的是文本文件  BLOB二进制文件
    * Oracle的文件类型:BLOB  CLOB

java.sql.date,time,timestampdate,datetime,timestamp
如果timestamp = null ,db会把系统当前时间存入

约束:有效性,完整性
单表约束:
* 主键约束:primary key  auto_increment --1.可自增型2.必须是主键
  * 唯一约束:unique,不null无用
* 非空约束:not null
多表约束:
* 外键约束:foreign key

删除


drop table 表名; DML  一条条删除,id自增长不还原
truncate 表名;DDL      整个表删除,然后新建,id自增长还原

修改表


rename table 表名 to 新表名;--修改表名
alter table 表 rename to 新表名;
alter table 表名 character set 字符集;--修改表的字符集

alter table 表名 add 列名 类型(长度) 约束;--修改表添加列. 
alter table 表名 drop 列名;--修改表删除列.
alter table 表名 change 旧列名 新列名 类型(长度) 约束;--修改表修改列名.
alter table 表名 modify 列名 类型(长度) 约束;--修改表修改列的类型长度及约束.

alter table 表名 add primary key(字段1,字段2...);--添加约束.
alter table 表名 add unique(字段1,字段2...);--添加约束.
alter table 表名 add foreign key(字段1,字段2...) references 表名(主键);--添加约束.

查看


查看所有表:show tables;
查看表结构:desc 表名;
     show create table 表名

数据操作:DML


插入

* insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 插入某些列
* insert into 表 values (值1,值2,值3..);--插入所有列
注意:
* 1.列名数与values后面的值的个数相等
* 2.列的顺序与插入的值得顺序一致
* 3.列名的类型与插入的值要一致.
* 4.插入值得时候不能超过最大长度.
* 5.值如果是字符串或者日期需要加’’.

删除


* delete from 表名 [where 条件];   -- 一条一条删除.如果在一个事务中,delete数据,这些数据可以找回
* truncate table 表名;   --  直接将表删除,重新建表.主键自增长还原

修改


* update 表名 set 字段名=值,字段名=值 [where 条件];


数据操作:DQL


* select [distinct]*[列名,列名  [[as] 别名 or '别  名' or `别  名`  ]   ] from 表 [where 条件] 
group by 分组字段1,2  having 条件   order by  排序字段   asc|desc

where  条件:  分组前条件,不能使用聚合函数
    * > ,<,=,>=,<=,<>(不等于) ,!=
    * like 使用占位符 _ 和 % : _代表一个字符 %代表任意个字符. 
        * select * from product where pname like '_nb%';
    * in在某个范围中获得值.
        * select * from price where pid in (10,20,30);



排序  
order  by  字段名   [规则]     --asc(升,默认)   desc(降)


聚合函数:
* sum(),avg(),max(),min(),count();   不计null
select   avg( price);
select   round(avg( price),2);round(数值,小数个数);
分组:
*group  by   字段名   having  分组后条件,可聚合函数
*与聚合函数一起使用


事务

mysql> start transaction    //中如果没提交,会自动回滚
mysql> commint
mysql> rollback















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值