目录
数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
结构化查询语言(Structured Query Language)简称SQL,是关系型数据库管理系统都需要遵循的规范。不同的数据库生产厂商都支持SQL语句,但都有特有内容。
普通话:各数据库厂商都遵循的ISO标准。
方言:数据库特有的语法。
数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
为了方面我们学习,可以先简单看一眼SQL的通用语法
详细的数据类型如下(不建议详细阅读!)
DDL(Data Definition Language) 本小结描述 对数据库的创建查看删除和使用。
格式: * create database 数据库名; * create database 数据库名 character set 字符集;
例如
#创建数据库数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8 CREATE DATABASE webdb_1; #创建数据库并指定数据库中数据的编码 CREATE DATABASE webdb_2 CHARACTER SET utf8;
查看数据库MySQL服务器中的所有的数据库:
show databases;
查看某个数据库的定义的信息:
show create database 数据库名;
例如:
show create database webdb_1;
drop database 数据库名称;
例如:
drop database webdb_2;
select database();
切换数据库:
use 数据库名;
例如:
use webdb_1;
DDL(Data Definition Language) 本小结描述 对数据表的创建查看删除和使用。
字段名 参数规定表中列的名称。
数据类型 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
长度 参数规定表中列的最大长度。
更多数据类型见附录:
示例:
现在我们想要创建一个名为 "Persons" 的表,包含五列:PersonID、LastName、FirstName、Address 和 City。
我们使用下面的 CREATE TABLE 语句:
PersonID 列的数据类型是 int,包含整数。
LastName、FirstName、Address 和 City 列的数据类型是 varchar,包含字符,且这些字段的最大长度为 255 个字符。
SQL 约束用于规定表中的数据规则。
如果存在违反约束的数据行为,行为会被约束终止。
约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
在 SQL 中,我们有如下约束:
在后面的章节,我们会讲解相关的约束。
查看数据库中的所有表:
格式:show tables;
格式:desc 表名; 例如:desc sort;
例如:drop table category;
作用:修改表添加列.
例如:
#1,为分类表添加一个新的字段desc为分类描述,类型是 varchar(20) ALTER TABLE category ADD `desc` VARCHAR(20);
作用:修改表修改列的类型长度及约束.
例如:
#2, 为分类表的描述字段desc进行修改,类型varchar(50) 添加约束 not null ALTER TABLE category MODIFY desc VARCHAR(50) NOT NULL;
作用:修改表修改列名.
例如:
#3, 为分类表的分类名称字段进行更换更换为 snamesname varchar(30) ALTER TABLE category CHANGE desc description VARCHAR(30);
作用:修改表删除列.
例如:
#4, 删除分类表中snamename这列 ALTER TABLE category DROP description;
作用:修改表名
例如:
#5, 为分类表category改名成 category2 RENAME TABLE category TO category2;
作用:修改表的字符集
例如:
#6, 为分类表 category 的编码表进行修改,修改成 gbk ALTER TABLE category CHARACTER SET gbk;
简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新
-- 向表中插入某些字段 insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..); --向表中插入所有字段,字段的顺序为创建表时的顺序 insert into 表 values (值1,值2,值3..);
如果要插入空值,可以不写字段,或者插入 null。
INSERT INTO category(cid,cname) VALUES('c001','电器'); INSERT INTO category(cid,cname) VALUES('c002','服饰'); INSERT INTO category(cid,cname) VALUES('c003','化妆品'); INSERT INTO category(cid,cname) VALUES('c004','书籍'); INSERT INTO category(cid) VALUES('c002'); INSERT INTO category(cname) VALUES('耗材');
用来修改指定条件的数据,将满足条件的记录指定列修改为指定值
--更新所有记录的指定字段 update 表名 set 字段名=值,字段名=值,...; --更新符号条件记录的指定字段 update 表名 set 字段名=值,字段名=值,... where 条件;
除了数值类型外,其它的字段类型的值必须使用引号引起
delete from 表名 [where 条件]; 或者 truncate table 表名;
删除表中所有记录使用delete from 表名; 还是用truncate table 表名; 删除方式:delete 一条一条删除,不清空auto_increment记录数。 truncate 直接将表删除,重新建表,auto_increment将重置,从1重新开始。
简称DQL(Data Query Language),用来查询数据库中表的记录。
#创建商品表: CREATE TABLE product( pid INT PRIMARY KEY, pname VARCHAR(20), price DOUBLE ); INSERT INTO product(pid,pname,price) VALUES(1,'联想',5000); INSERT INTO product(pid,pname,price ) VALUES(2,'海尔',3000); INSERT INTO product(pid,pname,price ) VALUES(3,'雷神',5000); INSERT INTO product(pid,pname,price ) VALUES(4,'JACK JONES',800); INSERT INTO product(pid,pname,price ) VALUES(5,'真维斯',200); INSERT INTO product(pid,pname,price ) VALUES(6,'花花公子',440); INSERT INTO product(pid,pname,price ) VALUES(7,'劲霸',2000); INSERT INTO product(pid,pname,price ) VALUES(8,'香奈儿',800); INSERT INTO product(pid,pname,price ) VALUES(9,'相宜本草',200); INSERT INTO product(pid,pname,price ) VALUES(10,'面霸',5); INSERT INTO product(pid,pname,price ) VALUES(11,'好想你枣',56); INSERT INTO product(pid,pname,price ) VALUES(12,'香飘飘奶茶',1); INSERT INTO product(pid,pname,price ) VALUES(13,'果9',1);
select [distinct] *| 列名,列名 from 表名字 where 条件
1.查询所有的商品. select * from 表名; 2.查询商品名和商品价格. select 列名1,列名2 from 表名; 3.去掉重复值. select distinct 列名 from 表名; 4.查询结果是表达式(运算查询): select 列名 运算符 操作数 from product; 如 : 查询所有商品的价格显示时加10元. 5.别名查询使用的关键字是as(as可以省略的) 列别名:select 列名 as 别名 from 表名; 表别名: select * from product as p;
1.查询所有的商品. select * from product; 2.查询商品名和商品价格. select pname,price from product; 3.别名查询.使用的关键字是as(as可以省略的). 3.1表别名: select * from product as p; 3.2列别名:select pname as pn from product; 4.去掉重复值. select distinct price from product; 5.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示. select pname,price+10 from product;
题干:
#查询商品名称为“花花公子”的商品所有信息:
#查询价格为800商品的全部信息
#查询价格不是800的所有商品的名字和价格
#查询商品价格大于60元的所有商品全部信息
#查询商品价格在200到1000之间所有商品的全部信息
#查询商品价格是200或800的所有商品的全部信息
#查询名字含有'想'字的所有商品的全部信息
#查询商品名字以'香'开头的所有商品的商品名和价格
#查询名字第二个字为'想'的所有商品的全部信息
# 查询商品价格为空的商品全部信息
# 查询商品价格不为空的商品全部信息
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有