最近笔者在学习数据库的相关知识,但是最基础的SQL语句还是要好好总结一下的。本文主要是记录SQL语句的相关知识。

一、SQL语句分类

1、DDL (数据定义语句)–数据定义语言 - Data Definition Language

–用来定义数据库的对象,如数据表、视图、索引等

2、DML  (数据操纵语句)–数据处理语言 - Data Manipulation Language

–在数据库表中更新,增加和删除记录

–如 update, insert, delete --- 增删改

3、DCL (数据控制语句)–数据控制语言 – Data Control Language

–指用于设置用户权限和控制事务语句

–如grant,revoke,if…else,while,begin transaction

4、DQL (数据查询语句)–数据查询语言 – Data Query Language

–select

二、SQL语句

1.创建数据库

CREATE  DATABASE  [IF NOT EXISTS] db_name   

  • •CHARACTER SET:指定数据库采用的字符集
  • •COLLATE:指定数据库字符集的比较方式
create database xiangzaixiansheng

#指定数据库的字符集为utf-8
create database xiangzaixiansheng character set utf8;

2.查看、删除数据库

显示数据库语句:

SHOW DATABASES

显示数据库创建语句:

SHOW CREATE DATABASE db_name

数据库删除语句:

DROP DATABASE  [IF EXISTS]  db_name

4.创建表(基本语句)

CREATE TABLE table_name
(
  field1  datatype,
  field2  datatype,
  field3  datatype

)character set 字符集 collate 校对规则

field:指定列名 datatype:指定列类型

注意:

1.表名、字段名称必须使用小写字母或者数字,禁止出现数字开头。

2.如果存储的字符串的长度几乎相等,则使用char定长字符串类型。

3.varchar是可变长度的字符串,不预先分配存储空间,长度不要超过5000.如果长度他与此数值,这定义字段为text类型。独立一张表出来,用主键来对应,避免影响其他字段的引用效率。

java数据库实现语句 java数据库sql语句大全_sql

java数据库实现语句 java数据库sql语句大全_sql语句_02

java数据库实现语句 java数据库sql语句大全_java数据库实现语句_03

修改某一个键为主键:

ALTER TABLE table_name DROP PRIMARY KEY (id)
说明:把主键的定义删除。
ALTER TABLE table_name ADD PRIMARY KEY (no)
说明:更改表得的定义把no设为主键。 

5.插入数据

INSERT INTO  table [(column [, column...])]
VALUES  (value [, value...]);

注意:字符和日期型数据应包含在单引号中。在values中列出的数据位置必须与被加入的列的排列位置相对应。

insert into student (sid,name,sex,age) values(1,'xiangzaixiansheng',1,23);
insert into student  values(1,'xiangzaixiansheng',1,23);

6.删除数据

delete from tbl_name  [WHERE where_definition]

如果不使用where子句,将删除表中所有数据。

使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。

7.更新数据

UPDATE   tbl_name  SET col_name1=expr1 [, col_name2=expr2 ...]    [WHERE where_definition] 
update student set age=28 where id=1;

8.查询数据

SELECT [DISTINCT] *|{column1, column2. column3..} FROM  table;

  • select 指定查询哪些列的数据。
  • column指定列名。
  • *号代表查询所有列。
  • from指定查询哪张表。
  • DISTINCT可选,指显示结果时,是否剔除重复数据

SELECT column as 别名 from 表名;

例子:

表别名   select  p.name,p.price from product as p;

列别名   select name as 商品名字, price as 商品价格 from product;

              select name  商品名字, price  商品价格 from product;

去除重复值  select distinct price from product;

select运算:

java数据库实现语句 java数据库sql语句大全_sql_04

条件查询: select * from product where price <35 or price >500;

like模糊查询:select  * from product where name like '%饼%'; 查询名字中带饼的

                  select * from product where name like '_熊';  查询第二个字是熊的所有商品

in 在某个范围获取值 select * from product where price in (20,30,45); 查询出商品价格在20 30 45 里面的商品

排序操作查询:

SELECT column1, column2. column3..FROM  table order by column asc|desc

  • Order by 指定排序的列,排序的列即可是表中的列名,也可以是select 语句后指定的列名。
  • Asc 升序、Desc 降序
  • ORDER BY 子句应位于SELECT语句的结尾。

例:select * from product order by price desc; 按照商品价格降序排列

聚集函数查询: where后面不能添加聚合函数

Select count(*)|count(列名) from tablename[WHERE where_definition]

Select sum(列名){,sum(列名)…} from tablename[WHERE where_definition]

Select max(列名) from tablename  [WHERE where_definition]

例:select sum(price) from product;查询所有价格的总和。

select * from product where price >(select avg(price) from product);查询商品价格大于平均价格的所有商品。

分组查询

SELECT column1, column2. column3.. FROM  table  group by column having ...

Havingwhere均可实现过滤,但在having可以使用聚集函数,having通常跟在group by后,它作用于分组

三、总结

编写顺序

select ...... from .........where .........group by.......... having ........order by.............

执行顺序

from .... where .... group by ..... having.....select ....order by ............