MySQL
来源:互联网 发布:陕西水利预算软件 编辑:程序博客网 时间:2024/06/07 12:18
一、SQL简介
SQL是用于访问和处理数据库的标准的计算机语言。
二、SQL的功能
1、 面向数据库执行查询
2、 可从数据库取回数据
3、 可在数据库中插入新的记录
4、 可更新数据库中的数据
5、 可从数据库删除记录
6、 可创建新的数据库
7、 可在数据库中创建新表
8、 可在数据库中创建存储过程
9、 可在数据库中创建视图
10、 可以设置表、存储过程和视图的权限
三、数据库的语法
可以把SQL分为两部分:数据操作语言(DML)和数据定义语言(DDL)。
SQL(结构化查询语言)是用于执行查询的语法。但是SQL语言也包含用于更新、插入和删除记录的语法。
查询和更新指令构成了SQL的DML部分:
SELECT(从数据库表中获取数据)
UPDATE(更新数据库表中的数据)
DELETE(从数据库表中删除数据)
INSERT INTO(向数据库表中插入数据)
SQL的数据定义语言(DDL)部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及加表间的约束。
SQL中最重要的DDL语句:
CREATE DATABASE(创建新的数据库)
ALTER DATABASE(修改数据库)
CREATE TABLE(创建新表)
ALTER TABLE(改变数据库表)
DROP TABLE(删除表)
CREATE INDEX(创建索引(搜索键))
DROP INDEX(删除索引)
四、SQL语句
数据库的使用
1、创建数据库
CREATE DATABASE 数据库名;
例:
CREATE DATEBASE mydb;
2、删除数据库
DROP DATABASE 数据库名;
例:
DROP DATABASE mydb;
3、重命名数据库(此语句在MySQL中不支持)
RENAME DATABASE 旧数据库名 TO 新数据库名;
4、查询数据库
SHOW DATABASES;
5、使用数据库
USE 数据库名;
例:
USE mydb;
6、查看数据库表
SHOW TABLES;
7、查看数据库表结构
DESCRIBE 表名;(或DESC 表名;)
例:
DESC student;student为表名。
数据表的使用
1、创建表
CREATE TABLE 表名(字段名 字段类型,字段名 字段类型…);
一般来说我们在字段类型中都会带有一个int类型的id值。用于今后的数据操作。
例:
CREATE TABLE mytable(id int(10),name varchar(20),time date);这里我们创建了一个名为mytable的带有int型的id、varchar型的name和date型的time的表。
2、删除表
DROP TABLE 表名;
3、修改表
a)对表名重命名
ALTER TABLE 表名 RENAME 新表名;
例:
ALTER TABLE mytable RENAME student;将mytable的表名修改为了student。
b)向表中添加一列
ALTER TABLE 表名 ADD 字段名 字段类型;
例:
ALTER TABLE student ADD address varchar(30);向表student中添加了数据类型为varchar的列名为address的一列。
c)删除表中的一列
ALTER TABLE 表名 DROP COLUMN 列名;
例:
ALTER TABLE student DROP COLUM address;删除了表student中的列名为address的一列。
d)修改表中一列的数据类型
ALTER TABLE 表名 MODIFY 字段名 字段类型;
例:
ALTER TABLE student MODIFY name TEXT;将表student中的列名为name的数据类型修改为了TEXT。
e)重命名一列
ALTER TABLE 表名 CHANGE COLUMN 旧字段名 新字段名 类型;
例:
ALTER TABLE student CHANGE COLUMN time starttime date;将表student中的列名为time修改为了starttime。
4、插入数据
a)全字段插入
INSERT INTO 表名 VALUES(值1,值2,值3...);
例:
INSERT INTO student VALUES (1,'张三','2014-10-10');向表student中插入了id为1,name为张三,starttime为2014-10-10的数据。
b)部分字段插入
INSERT INTO 表名(列名1,列名3...) VALUES(值1,值3...);
例:
INSERT INTO student(id,starttime) VALUES(2,'2014-11-01');向表student中插入了id为2,starttime为2014-11-01的数据。
查询语句
a)从一张表中查询出指定列的数据
SELECT 列名1,列名2....FROM 表名;
例:
SELECT id,name FROM student;从表student中查询列名为id和name的所有数据。
b)从一张表中查询出所有列的数据
SELECT * FROM 表名;
例:
SELECT * FROM student;查询表student中的所有数据。
c)带有选择条件的查询
WHERE 关键字用于规定语句的执行条件。
如果在查询语句后,加上WHERE 语句,将可以限定查询的结果。
SELECT * FROM 表名 WHERE 列名 = 某值;
例:
SELECT * FROM student WHERE id = 1;查询表student中id为1的所有数据。
d)AND , OR运算符查询
在WHERE条件中,我们可以使用AND或者OR来讲条件结合起来使用。
①需要同时成立:
SELECT * FROM 表名 WHERE 列1=值1 AND 列2 = 值2;
例:
SELECT * FROM student WHERE id = 1 AND name = '张三';查询表student中id为1并且name为张三的所有数据。
②其中一个成立:
SELECT * FROM 表名 WHERE 列1 = 值1 OR 列2 = 值2;
例:
SELECT * FROM student WHERE id = 1 OR name = '张三';查询表student中id为1或者name为张三的所有数据。
e)IN关键字查询
IN允许我们在WHERE中规定多个值,用于搜索数据。
SELECT * FROM 表名 WHERE 列 IN (值1,值2,值3);
表示该列符合值1,值2,值3的数据都会返回。当然这个查询语句也可以使用OR实现。
f)排序查询
如果想要返回的结果按照升序或降序排列,可以使用ORDER BY关键字
①升序
SELECT * FROM 表名 ORDER BY 列名;
例:
SELECT * FROM student ORDER BY id;
查询表中所有数据,并按照id升序的顺序排列。
②降序
SELECT * FROM 表名 ORDER BY 列名 DESC;
例:
SELECT * FROM student ORDER BY id DESC;查询表中所有数据,并按照id降序的顺序排列。
g)唯一值
在表中,可能有多行数据的同一列数据有同样的值,这样如果我们只查询此列的数据时,同样的值将会产生某些困扰,
此时我们可以使用DISTINCT关键字让我们的返回值不再重复。
SELECT DISTINCT 列名 FROM 表名;
例:
SELECT DISTINCT id FROM student;查询表student的id列中所有不重复的数据(重复的数据只显示一次)。
h)TOP关键字
在表中我们查询的结果有时候并不需要所有的数据,而只需要前几行数据,那么这个时候我们就可以使用TOP关键字。
MySQL不适用SELECT TOP 数量的写法,而使用LIMIT数量。
SELECT * FROM 表名 LIMIT 需要返回的行数。
或者 SELECT * FROM 表名 LIMIT 下标(从0开始数),需要返回的行数;
例:
SELECT * FROM student LIMIT 5;查询表student中的前5行数据。
SELECT * FROM student LIMIT 3,5;查询表student中的从第4行开始的后5条数据。
更新(修改)数据
修改表中数据
UPDATE 表名 SET 列名 = 新值 WHERE 列名 = 指定数据;
例:
UPDATE student SET name = '张三' WHERE id = 1;修改表student中id= 1 的name 的值为张三。
注意:如果不带有条件限定将会导致此表中所有数据的此字段都修改为新值。
删除语句
DELETE FROM 表名 WHERE 列名 = 某值;
例:
DELETE FROM student WHERE id = 2;删除表student中的id= 2的所有数据。
删除该表符合条件的每一行数据。不带WHERE条件,将删除该表中所有数据。
模糊查询
模糊查询,使用较多,其实就是使用少量数据取匹配出我们要查询的数据。
在SQL语法中,我们要实现模糊查询,需要用LIKE关键字和通配符。
通配符:在查询中,我们可以使用通配符去代替我们需呀填入的字符。
a)%,用来匹配一个活多个字符。
b)_,用来匹配仅一个字符。
c)[多个字符],用来匹配多个字符中的一个(MySQL不支持)。
d)[!多个字符],用来匹配非多个字符中的一个(MySQL不支持)。
SELECT * FROM 表名 WHERE 列名 LIKE '_N%';
查询这个表中此字段内,第二个字符为n的数据。
例:
SELECT * FROM student WHERE name LIKE 'n%';查询表student的name中以“n”开头的所有数据。
注意:SQL对大小写不敏感。
- Mysql
- MySql
- MYSQL
- MySQL
- mysql
- mysql
- mysql
- mysql
- Mysql
- Mysql
- mysql
- MySQL
- mysql
- Mysql
- mysql
- mysql
- mysql
- mySQL
- 设置圆形按钮
- jeewx 微信管家 - 举办商业版本免费试用活动
- (高质量代码专栏)第二章-2
- 第十二周项目三用递归方法求解(6)
- jtt809加密算法
- MySQL
- Cannot generate SSPI context.
- Android编译,打包、签名详细教程
- 去除unity3d的splash页面(remove unity3d splash image),在android中。
- mfc关闭js弹出框
- 场景切换,菜单界面
- 简单工厂VS工厂方法VS抽象工厂
- 求字符串中连续出现次数最多的子串
- android View 的组件内在区别