SQL语句基础用法

一、数据库定义语句(DDL语句)

1,CREATE DATABASE 创建数据库

 CREATE DATABASE USERDB

注:CREATE 表示创建的意思,DATABASE后加新建数据库名

2,USE USERDB GO 指定给数据库

USE USERDBGO
AS

注:USE 后加数据库,主要是指新建查询后,不是在你想要的数据库中,可以使用该语句转过去

3,创建视图

CREATE VIEW view_name AS
SELECT column_name(s) FROM table_name WHERE condition

注:创建视图时可以先写好查询语句,多表使用内连接。然后把下面的select语句替换就好了

4,CREATE TABLE 创建一张表

CREATE TABLE table_name(
column_name1 data_type(size),
column_name2 data_type(size),
column_name2 data_type(size),....)

注:DATABASE后加表名,括号中写列名,空格加列的数据类型。逗号后写你需要添加的列。

5,CONSTRAINT  约束

CREATE TABLE table_name(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

注:constraint_name可以换成约束的语句,这里写的不是很详细,可以百度

(1)NOT NULL - 指示某列不能存储 NULL 值。(非空)

(2)UNIQUE - 保证某列的每行必须有唯一的值(主键)

(3)PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个 列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录(自 增长)

(4)FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性(外 键)

(5)CHECK - 保证列中的值符合指定的条件。(条件)

(6)DEFAULT - 规定没有给列赋值时的默认值。(默认值)

6,CREATE INDEX 索引

CREATE INDEX index_name ON table_name (column_name)

注:说白了就是建主外键关系。

7,ALTER TABLE 添加一列

ALTER TABLE table_name ADD column_name datatype

注:就是在原来的表中添加一列

8,DROP 删除数据库,表

(1)删除数据库 :

DROP DATABASE database_name

(2)删除表 :

DROP TABLE table_name

(3)清除表中数据:

TRUNCATE TABLE table_name

 注:删除都要注意,别乱删。搞不好要提桶跑路的

二、数据库操作语句(DML语句)

(一)INSERT语句

1,无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name VALUES (value1,value2,value3,...)

注:有多少个列名就添加多少个,主键是不用添加的,外键要根据外键表去添加

2,需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...)

注:指定列名了多少列名就添加多少个。

3,使用SELECT添加写法:

INSERT INTO table_name (column1,column2,column3,...) AS
select column1,column2,column3,... from table_name  where 查询的条件

注:select和正常的查询语句一样,就是要列名数量相同。

(二)UPADATE 语句

UPDATE table_name SET column1=value1,column2=value2,...
WHERE some_column=some_value;

注:SET 就是赋值的意思,在执行添加一定要写好条件。可以先使用查询语句查出你需要修改的数据。

(三)DELETE 语句

 DELETE FROM table_name WHERE some_column=some_value;

注:

1,没有加条件就是清空表中的所有数据,这里建议还是加上条件吧。毕竟在工作中不会清掉表中所有数据。删错了数据,如果有快照,可以使用快照恢复。没有的话,提桶跑路吧!

2,删除和添加一样执行前一定要先看清楚。最好的办法是先写查询,查一下,根据查询语句来删除

三、数据查询语句(DQL语句)

1,SELECT 简单的查询

SELECT * FROM table_name

注:*代表查询所有列名

2,SELECT 查询你需要的列名

SELECT column_name,column_name FROM table_name

注:可以和*一起使用。*前面要加逗号。

3,DISTINCT 去掉重复值的查询

SELECT DISTINCT column_name FROM table_name

注:DISTINCT 是去掉重复的意思,后是接的你需要去掉的列名

4, WHERE条件查询

SELECT column_name,column_name FROM table_name WHERE column_name='李四'

注:where就是查询条件的意思,where 后要加入查询的条件。这条件可以等于,大于,小于

5,AND运算符

SELECT column_ID,column_name FROM table_name WHERE column_ID= 1 and  column_name='王五'

注:如果第一个条件和第二个条件都成立,则 AND 运算符显示相关记录。

6,OR 运算符

SELECT column_ID,column_name FROM table_nameWHERE column_ID= 2 OR column_name='王五'

注:如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示相关记录

7, ORDER BY 排序查询

SELECT column_name,column_name FROM table_name ORDER BY column_name  ASC|DESC

注:ORDER BY 后面需要排序的列名 ,ASC表示正序,DESC表示倒序。

8, GROUP BY 分组查询

SELECT column_ID,count(*) FROM table_name GROUP BY column_ID

注:GROUP BY 后面需要分组的列名,只能显示你分组的的列名,可以结合聚合函数使用。下面有聚合函数的使用方法。

9,HAVING 筛选分组

SELECT column_name, aggregate_function(column_name) FROM table_name 
WHERE column_name operator value GROUP BY column_name 
HAVING aggregate_function(column_name) operator value

注:HAVING 子句可以让我们筛选分组后的各组数据。

10,AS 别名

SELECT column_name AS alias_name FROM table_name

注:AS就是重新取个名字,可以使用到列名和表名上。

11,TOP 查询前几行的数据

SELECT TOP 5 table_name,table_name...  FROM table_name

注:TOP后的数字是表示需要显示几条数据,想显示几条就写数字几表示。

12,LIKE 模糊查询

SELECT * FROM table_name WHERE column_name LIKE ’%pattern%’

注: LIKE前是表示需要模糊查询的列名,后面是表示模糊查询的字符串

13,%  _  []   [~]  [!] 通配符

(1)% 表示替代 0 个或多个字符,

(2)_  表示替代一个字符,如果需要几个字符,打几个_就可以了

(3)[] 表示字符列中的任何单一字符

(4)[~] [!]  表示不在字符列中的任何单一字符,两个的用法一样

注:通配符是和模糊查询一起使用的。

14,IN 操作符

SELECT * FROM table_name WHERE column_name IN (value1,value2,...)

注:查询多个值使用,在工作上会经常使用。IN前面表示需要查询的列名,括号里表示需要查询的值,可以多个,也可以单个。

15,BETWEEN 操作符

SELECT *FROM table_name WHERE column_name BETWEEN value1 AND value2

注:BETWEEN 表示查询一个区间的数据,BETWEEN前面表示需要查询的列名,value1与value2表示区间的数字。

16,JOIN 内链接查询

第一种: INNER JOIN 两表中相同的数据。

SELECT * FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name

注:就是查出两张表中相同的数据,ON后面可以接上一个或多个列名。

第二种:LEFT JOIN 左查询

SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name=table2.column_name

注:从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

第三种:RIGHT JOIN 右查询

SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name=table2.column_name

注:从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

第四种:FULL OUTER JOIN 两表中的数据。

SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column_name=table2.column_name

注:只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行

17,子查询

SELECT * FROM table1 WHERE  column_name=(SELECT column_name FROM table2)

注:table2查询出的值将作为条件,查询table1中的数据。子语句中只能返回一个列名。

18,多表链接查询

SELECT * FROM table1 tab1,table2 tab2  WHERE  tab1.ID=tab2.ID

注:两张表最好设置主外键关系,也可以加上其他条件。自己多去理解!

19,UNION 表合并查询

SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2

注:(1)UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

(2)UNION ALL 是有返回重复的值。

(3)请注意,UNION 内部的每个SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个SELECT 语句中的列的顺序必须相同。

四、聚合函数 

1,AVG() 函数 (平均值)

SELECT AVG(column_name) FROM table_name

2,COUNT() 函数(总和)

SELECT COUNT(column_name) FROM table_name

3,FIRST() 函数(第一个记录的值)

SELECT FIRST(column_name) FROM table_name

4,LAST() 函数(最后一个记录的值)

SELECT LAST(column_name) FROM table_name

5,MAX() 函数(最大值)

SELECT MAX(column_name) FROM table_name

6,MIN() 函数(最小值)

SELECT MIN(column_name) FROM table_name

7,SUM() 函数(列的总数)

SELECT SUM(column_name) FROM table_name

8,UCASE() 函数 (自动识别英文,转化为大写)

SELECT UCASE(column_name) FROM table_name

9,LCASE() 函数 (自动识别英文,转化为小写)

SELECT LCASE(column_name) FROM table_name

10,MID() 函数(提取字符)

SELECT MID(column_name,start,length) FROM table_name

注:column_name表示列名,start表示开始的字段,length表示结束的字段

11,LEN() 函数 (文本字段中值的长度)

SELECT LEN(column_name)FROM table_name

12, ROUND() 函数 (把数值字段舍入为指定的小数位数)

SELECT LEN(column_name)FROM table_name

13,GETDATE()函数  (当前系统的日期和时间)

SELECT GETDATE() FROM table_name

14,NULL 与 IS NULL 与IS NOT NULL

(1)NULL 是代表空值,不是代表空字符。

(2)IS NULL 是代表为空值,区别=NULL与IS NULL,=NULL 是赋值的意思用于   SET。而IS NULL是为空值,多用于查询条件。

(3)IS NOT NULL 是不为空值,用法于IS NULL 一样

15,EXISTS 运算符

SELECT column_name(s) FROM table_name WHERE EXISTS(SELECT column_name FROM table_name WHERE condition)

注:EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。

五、数据控制语言(DCL语句)

1、创建用户

CREATE USER ‘user1’@localhost IDENTIFIED BY ‘123’;
CREATE USER ‘user2’@’%’ IDENTIFIED BY ‘123’;

注:CREATE USER ‘用户名’@地址 IDENTIFIED BY '密码';

2、给用户授权

GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost;
GRANT ALL ON mydb1.* TO user2@localhost;

注:GRANT 权限 1, … , 权限 n ON 数据库.* TO ‘用户名’@地址;

3.撤销授权

REVOKE CREATE,ALTER,DROP ON mydb1.* FROM user1@localhost;

注:REVOKE 权限 1, … , 权限 n ON 数据库.* FROM ‘用户名’@地址;

4.查看用户权限

SHOW GRANTS FOR user1@localhost;

注:SHOW GRANTS FOR ‘用户名’@地址;

5.删除用户

DROP USER ‘user1’@localhost;

注:DROP USER ‘用户名’@地址

6.修改用户密码(以root身份)

alter user 'user1'@localhost identified by '123456';

注:alter user '用户名'@localhost identified by '新密码';

六、作者有话说

本文档借鉴了菜鸟教程:SQL 教程 | 菜鸟教程

我这里写的比较全一点点。如果有漏写的,还请各位大神指点。

这里只是总结了数据库中大部分的知识点,其他的没有总结到还请见谅。

虽说我是单个知识点分开写的,但是在工作上还是会要你写复杂的SQL语句,且是写在存储过程中。

这份文档是基础,类似于知识点的总结,高级使用还是需要自己去研究的。加油吧!!!!

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL(Structured Query Language)是一种用于管理关系型数据库的语言。以下是几个基础SQL 语句以及用法: 1. SELECT:用于从数据库中选择数据。 语法:SELECT column_name(s) FROM table_name 示例:SELECT * FROM customers; 2. INSERT INTO:用于将新记录插入到数据库中。 语法:INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...) 示例:INSERT INTO customers (name, email, phone) VALUES ('John Smith', '[email protected]', '123-456-7890'); 3. UPDATE:用于更新数据库中的记录。 语法:UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition 示例:UPDATE customers SET phone = '555-555-5555' WHERE id = 1; 4. DELETE:用于从数据库中删除记录。 语法:DELETE FROM table_name WHERE condition 示例:DELETE FROM customers WHERE id = 1; 5. WHERE:用于筛选数据库中的数据。 语法:SELECT column_name(s) FROM table_name WHERE condition 示例:SELECT * FROM customers WHERE name = 'John Smith'; 6. ORDER BY:用于按照指定的列对结果进行排序。 语法:SELECT column_name(s) FROM table_name ORDER BY column_name ASC|DESC 示例:SELECT * FROM customers ORDER BY name ASC; 7. GROUP BY:用于将结果按照指定列进行分组。 语法:SELECT column_name(s) FROM table_name GROUP BY column_name 示例:SELECT COUNT(*) as count, country FROM customers GROUP BY country; 这些是 SQL 中的一些基础语句和用法。在实际应用中,SQL 还有很多高级操作和函数,可以根据具体需求进行学习和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值