什么是据库
一个存储数据的仓库
分为人工管理阶段,文件管理阶段,数据库管理阶段
优点
mysql是开放源代码数据库
mysql是跨平台性
价格优势
功能强大且使用方便
创建数据库
SHOW DATABASE LIKE ‘storage_engine’ 查看默认数据库名
SHOW ENCINES 查看数据库支持的存储引擎
SHOW DATABASE 查看已经存在的数据库
SHOW ENGINES \G 查看该系统数据库支持引擎的类型
语法 CREATE DATABASE 数据库名
删除数据库
语法 DROP DATABASE 数据库名
创建 修改 删除表
表是数据库的基本单位
CREATE TABLE 表名
CREATE TABLE example2
->str_id int,
->course_id int ,
->grade float;
SQL
SQL 是用于访问和处理数据库的标准的计算机语言。
什么是 SQL
SQL 指结构化查询语言
SQL 使我们有能力访问数据库
SQL 是一种 ANSI 的标准计算机语言
数据库能做什么
面向数据库执行查询
可从数据库取回数据
可在数据库中插入新的记录
可更新数据库中的数据
可从数据库删除记录
可创建新数据库
可在数据库中创建新表
可在数据库中创建存储过程
可在数据库中创建视图
可以设置表、存储过程和视图的权限
# DML语句(数据操作语言)
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
# DDL语句(数据定义语言,创建或者删除表格)
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
# 创建一个表的规律
1,mysql -u root -P
2,root
3,show databases;
4,create database ;se
表名;
5,use 表名
6,creat table 表名(数据);
7,show tables;
8,describe student;
9,insert into student (shuju) value (shuju)
10,进行增删改查........
select 从表中选取数据
输入 select lastName,lastName from Persons
“Persons” 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
结果:
LastName FirstName
Adams John
Bush George
Carter Thomas
从 “Persons” 表中选取所有的列。
使用符号 * 取代列的名称,就像这样:
SELECT * FROM Persons
星号(*)是选取所有列的快捷方式。
select distinct(不相同)
(表中会出现重复值,我们希望列出仅仅不同的值,用distinct 返回唯一不同的值)
语法 select distinct 列名称 from 表名称
例子:select Company from Orders
"Orders"表:
Company OrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953
结果:
Company
IBM
W3School
Apple
W3School
结果w3school被列出了两次
所以采用 select distinct Company from Orders
WHERE
有条件从表中选取数据,可将WHERE子句添加到SELECT语句
语法 SELECT 列名称 FROM 表名称 WHERE 列 运算符 值(不等于为<>)
例子
select *from Persons where City =‘Beijing’
“Persons” 表
LastName FirstName Address City Year
Adams John Oxford Street London 1970
Bush George Fifth Avenue New York 1975
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985
结果:
LastName FirstName Address City Year
Carter Thomas Changan Street Beijing 1980
Gates Bill Xuanwumen 10 Beijing 1985
单引号环绕文本值,数值不用单引号
AND 第一第二个条件成立,用AND运算符一条记录
OR 第一或着第二个条件成立 则OR运算符显示一条记录
"Persion"表
LastName FirstName Address City
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing
AND 运算符实例
使用 AND 来显示所有姓为 “Carter” 并且名为 “Thomas” 的人:
select *from Persion where Firstname=‘Thomas’ AND LastName=‘Carter’
结果:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
OR 运算符实例
select *from Persion Where firstname=‘Thomas’ OR lastName=‘Carter’
把OR AND 结合起来
select *from Persion where (Firstname='Thomas’OR firstName=‘willian’)AND lastName=‘Carter’
order by 语句
用于根据指定的列对结果集进行排序
默认按照升序对记录进行排序
Orders 表:
Company OrderNumber
IBM 3532
W3School 2356
Apple 4698
W3School 6953
以字母顺序显示公司名称
select Company,OrderNumber from orders order by Company
Company OrderNumber
Apple 4698
IBM 3532
W3School 6953
W3School 2356
逆字母顺序显示公司名称
select company,ordrenumber from ordres order by company desc
以字母顺序显示公司名称,并以数字顺序显示顺序号
select Company,ordernumber from orders order by Company,ordernumber
Company OrderNumber
Apple 4698
IBM 3532
W3School 2356
W3School 6953
以逆字母顺序显示公司名称,并以数字顺序显示顺序号:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
insert into
用于向表格中插入新的行
语法 insert into 表名称 values(值1,值2.。。。。)
也可以指定插入数据的列
insert into table_name(列1,列2…)values(值1,值2…)
“Persons” 表:
LastName FirstName Address City
Carter Thomas Changan Street Beijing
insert into Persion values(‘Gates’,‘Thomas’,‘Xuanwumen 10’,‘Beijing’)
LastName FirstName Address City
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
在指定列中插入数据
insert into Persons(lastName,Address)value (‘wilson’,‘chams-Elysees’)
LastName FirstName Address City
Carter Thomas Changan Street Beijing
Gates Bill Xuanwumen 10 Beijing
Wilson Champs-Elysees
UPDATE set 用于修改表中的数据
语法 update 表名称 set 列名称 =新值 where 列名称 =新值
Person:
LastName FirstName Address City
Gates Bill Xuanwumen 10 Beijing
Wilson Champs-Elysees
update Person set firstname =‘fred’,city=‘Changan’ where lastname =‘wilson’
LastName FirstName Address City
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Champs-Elysees changan
delete用于删除表中的行
语法 delete from 表名称 where 列名称 =值
Person:
LastName FirstName Address City
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Zhongshan 23
删除某行
delete from Persion where lastName=‘wilson’
LastName FirstName Address City
Gates Bill Xuanwumen 10
删除所有行
在不删除表的情况下删除所有行
delete from table_name
或者
delete*from table_name
高级教程
top 用于规定要返回的记录的数据
sql server 语法
select top number|percent colum_name(s)
froom table_name
mysql语法
select column_name(s)
from table_name
limit number
例子 select *from Persons limit 5
Oracle 语法
select column_name(s) from table_name where rownum <=OrderNumber
例子 select *from Persons where rownum <=5
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
4 Obama Barack Pennsylvania Avenue Washington
SQL TOP 实例
现在,我们希望从上面的 “Persons” 表中选取头两条记录。
我们可以使用下面的 SELECT 语句:
SELECT TOP 2 * FROM Persons
结果:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
SQL TOP PERCENT 实例
现在,我们希望从上面的 “Persons” 表中选取 50% 的记录。
我们可以使用下面的 SELECT 语句:
SELECT TOP 50 PERCENT * FROM Persons
结果:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
like 用在where中收索列中的指定模式
select column_name(s) from table_name where column_name like pattern
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
例子 1
现在,我们希望从上面的 “Persons” 表中选取居住在以 “N” 开始的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE ‘N%’
提示:"%" 可用于定义通配符(模式中缺少的字母)。
结果集:
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York
例子 2
接下来,我们希望从 “Persons” 表中选取居住在以 “g” 结尾的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE ‘%g’
结果集:
Id LastName FirstName Address City
3 Carter Thomas Changan Street Beijing
例子 3
接下来,我们希望从 “Persons” 表中选取居住在包含 “lon” 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City LIKE ‘%lon%’
结果集:
Id LastName FirstName Address City
1 Adams John Oxford Street London
例子 4
通过使用 NOT 关键字,我们可以从 “Persons” 表中选取居住在不包含 “lon” 的城市里的人:
我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons
WHERE City NOT LIKE ‘%lon%’
结果集:
Id LastName FirstName Address City
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street
in 在 where中规定多个值
select column_name(s) from table_name where column_name in(value1,value2…)
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
select *from Presons where lastname in (‘Adams’,‘Carter’)
Id LastName FirstName Address
1 Adams John Oxford Street London
3 Carter Thomas Changan Street
#between…and
select column_name(s) from table_name where column_name between value1 and value2
Persons 表:
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing
4 Gates Bill Xuanwumen 10
select *from Persions where lastname between ‘Adams’ and ‘Carter’
Id LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
重要事项:不同的数据库对 BETWEEN…AND 操作符的处理方式是有差异的。某些数据库会列出介于 “Adams” 和 “Carter” 之间的人,但不包括 “Adams” 和 “Carter” ;某些数据库会列出介于 “Adams” 和 “Carter” 之间并包括 “Adams” 和 “Carter” 的人;而另一些数据库会列出介于 “Adams” 和 “Carter” 之间的人,包括 “Adams” ,但不包括 “Carter” 。