SQL语法

首先,对SQL做一个分类。SQL分为:

数据定义语言 :

简称DLL(data definition Language),用来数据库对象,包括数据库,表,列等。主要的关键字有:create,alter ,drop等。

数据操作语言:

简称DML(data manipulation Language),用来对数据库中的表进行更新。关键字:insert,delete,updata等。

数据控制语言:

简称DCL(Data Contorl language),用来定义数据库的访问权限和安全级别,还有创建用户

数据查询语言:

简称DQL(Data Query language),用来查询数据库中表的记录。关键字:select,from , where等

SQL通用语法

1.SQL语句不区分大小写,但通常建议使用大写
2.末尾以分号结尾,通过空格和缩进来增强语句的可读性。
3.使用/**/的方式添加注释。

常见的数据类型有:int,double,varchar和data。但数据类型远不止此。

分类类型名称说明
整数类型tinyInt很小的整数
整数类型smallint小的整数
整数类型mediumint中等大小的整数
整数类型int(integer)普通大小的整数
小数类型float单精度浮点数
小数类型double双精度浮点数
小数类型decimal(m,d)压缩严格的定点数
日期类型year YYYY1901~2155
日期类型timeHH:MM:SS -838:59:59~838:59:59
日期类型dateYYYY-MM-DD 1000-01-01~9999-12-3
日期类型datetimeYYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
日期类型timestampYYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC
文本、二进制类型CHAR(M)M为0~255之间的整数
文本、二进制类型VARCHAR(M)M为0~65535之间的整数
文本、二进制类型TINYBLOB允许长度0~255字节
文本、二进制类型BLOB允许长度0~65535字节
文本、二进制类型MEDIUMBLOB允许长度0~167772150字节
文本、二进制类型LONGBLOB允许长度0~4294967295字节
文本、二进制类型TINYTEXT允许长度0~255字节
文本、二进制类型TEXT允许长度0~65535字节
文本、二进制类型MEDIUMTEXT允许长度0~167772150字节
文本、二进制类型LONGTEXT允许长度0~4294967295字节
文本、二进制类型VARBINARY(M)允许长度0~M个字节的变长字节字符串
文本、二进制类型BINARY(M)允许长度0~M个字节的定长字节字符串

数据库的操作:database

创建数据库

格式:
*create database 数据库名
*create database 数据库名 character set 字符集名(UTF8,GBK…..)

查看数据库

查看MySQL服务器中所有的数据库:
show database
查看某个数据库的定义信息:
show create database 数据库名

删除数据库

drop database 数据库名称

切换数据库

use 数据库名称

查看正在使用的数据库

select database();

表结构的相关语句

创建表:

格式:
create table 表名{
字段名 类型(长度) 约束
字段名 类型(长度) 约束

}
举例:
CREAT TABLE GOODS{
brand VARCHAR(100)
price INT(100)

}
######主键约束
主键是用于标识当前记录的字段。主键有且仅有一个,非空。

有两种方式来创建表的主键

第一种是在创建表时创建主键,在字段后边加上 primary key
create table tablename(
id int primary key,
……

第二种是先加上主键字段但不声明,在表最后加入声明
create table tablename(
int id
……
primary key (id)

删除主键

格式:alter table 表名 drop primary key
举例:alter table goods drop primary key

主键是自动增长的,无需指定

在主键后边添加auto increment即可实现自动增长.
举例:
CREATE TABLE GOODS {
sid INT PRIMARY KEY AUTO INCREMENT
……
}

#查表

查看数据库中所有的表 :show tables
查看表的结构: desc

#删除表

drop table 表名

#修改表的结构格式

alter table 表名 add 列名 类型(长度) 约束;
作用:为表添加列
alter table 表名 modify 列名 类型(长度) 约束;
作用:修改表中列的类型长度和约束
alter table(表名) change 旧列名 新列名 类型(长度) 约束;
作用:修改表中某列的名字
alter table 表名 drop 列名
作用:删除某列
rename table 表名 to 新表名
作用:修改表名
alter table 表名 character set 字符集
作用:修改表的字符集

#####插入表记录
语法
insert into 表名(列名1,列名2,列名3**……**)values (值1,值2,值3…);
insert into 表名(值1,值2,值3**…….**)
第一种是向指定的列插入值,第二种是向表中所有列都插入值
1.插入时必须注意插入数据的类型和字段的类型相同,且数据的大小应该在列的长度范围内
2.除了数值外,其他的字段类型必须使用引号包裹起来赋值出,如果要插入空置,则不必写入字段,直接赋值为null即可
举例:
INSERT INTO GOODS(sid,name) VALUES(‘s001’,’xiaomi’);
INSERT INTO GOODS(sid,name) VALUES(‘s002’,’huawei’);
……

更新表记录:

用来修改指定条件的数据,将满足条件的记录指定为指定值
语法:
updata 表名 set 字段名=值,字段名=值,…….
updata 表名 set 字段名=值,字段名=值,……,where 条件;
值如果是字符串或者日期,则需要加‘’包裹

删除记录:delete

语法:
detele from 表名 [where 条件];
truncate table 表名;

注意:在DOS命令窗口操作中文时会报错,这还是由于你使用的MySQL的客户端编码是UTF8,而系统的cmd窗口编码是GBK
解决方案:修改MySQL客户端编码

SQL查询语句

创建账务表:

CREATE TABLE zhangwu (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(200),
money DOUBLE,
)

插入表记录

insert into zhangwu (id,name,money) values(1,’吃饭’,10)
insert into zhangwu (id,name,money) values(2,‘坐车’,200)
……..

查询的语法:
  • 查询指定字段
    select id ,name**……**from zhangwu
    也可以选择 select * from zhanwu,查询本表中的所有字段,但是通常不这样做,因为如果表的数据较大时,将会严重拖慢程序运行的速度。
  • 去除重复记录
    select distanct 字段 from 表名;
    举例:select distanct 字段 from 表名;
条件查询语句

where 语句表示条件过滤。富哦用于数据的查询和修改。
select 字段 from 表名 where 条件;

运算符类型语句说明
比较运算符< > <= >= = <>小于 大于 …
BETWEEN…AND…显示某一区域的值(含头尾)
IN(set)显示在in列表中的值,例:in (1,10)
LIKE通配符模糊查询,LIke语句中有两个通配符:%用来匹配多个字符,_用来匹配一个字符
IS NULL/IS NOT MULL判断是否为空/不为空
逻辑运算符and多个条件同时成立
or多个条件任一成立
not不成立

查询所有吃饭支出记录
SELECT *FROM zhangwu WHERE name = ‘吃饭支出’;
查询金额大于100的支出
SELECT *FROM zhangwu WHERE money>100;
查询金额大于2000小于5000的支出
SELECT *FROM zhangwu WHERE money >2000 AND money money<5000;或者 SELECT *FROM zhangwu WHERE money BETWEEN 2000 AND 5000;
查询金额是1000和5000或者3500的支出信息
SELECT *FROM zhangwu WHERE money=1000 OR money=5000
OR money=3500;
或者
SELECT *FROM zhnagwu WHERE money IN(1000,5000,3500);

查询出账务中名称包含“支出”的账务信息
SELECT *FROM zhangwu WHERE name LIKE “%支出%”

查询出账务名称不为NULL账务信息
SELECT *FROM zhangwu WHERE name IS NOT NULL
或者
SELECT *FROM zhangwu WHERE NOT (name IS NULL)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值