sql常用语句写法

SQL操作直接说:
创建数据库很简单,CREATE DATABASE 数据库名;就搞定。

切换数据库用USE 数据库名;,直接用就行。

删除数据库直接DROP DATABASE 数据库名;,确认过再删。

设数据库只读,EXEC sp_dboption '数据库名', 'readonly', 'true';,记得加引号。

设自动收缩,EXEC sp_dboption '数据库名', 'autoshrink', 'true';,能省空间就省。

设单独访问,EXEC sp_dboption '数据库名', 'singleuser', 'true';,搞维护用。

收缩数据库,DBCC SHRINKDATABASE(数据库名, 1 0);,1 0是释放空间百分比。

创建表直接CREATE TABLE 表名(列1 数据类型, 列2 数据类型);,简单粗暴。

主键建表时就能加,PRIMARY KEY(列名)写上就行。

建表后加主键,ALTER TABLE 表名 ADD CONSTRAINT pk_表名 PRIMARY KEY(列名);,约束名随便取。

主键也能删,ALTER TABLE 表名 DROP CONSTRAINT pk_表名;,记得约束名。

唯一约束类似,UNIQUE(列名)建表时加,ALTER TABLE ... ADD CONSTRAINT u_表名 UNIQUE(列名);建表后加。

检查约束用CHECK(条件),ALTER TABLE ... ADD CONSTRAINT ck_表名 CHECK(条件);建表后加。

默认约束DEFAULT(值),ALTER TABLE ... ADD CONSTRAINT df_表名 DEFAULT(值) FOR 列名;建表后加。

外键约束FOREIGN KEY REFERENCES 外表名(主键),ALTER TABLE ... ADD CONSTRAINT fk_表名 FOREIGN KEY(列名) REFERENCES 外表名(主键);建表后加。

自动编号列INT IDENTITY(1 ,1 ),IDENTITY(起始值,步长)自定义。

改列类型,ALTER TABLE 表名 ALTER COLUMN 列名 数据类型;,直接改。

加新列,ALTER TABLE 表名 ADD 列名 数据类型;,简单。

删列,ALTER TABLE 表名 DROP COLUMN 列名;,删完没得回。

数据插入,INSERT INTO 表名 VALUES(值1 , 值2 );,顺序对应就行。

更新数据,UPDATE 表名 SET 列名 = 新值 WHERE 条件;,条件写错了全改了。

删除数据,DELETE FROM 表名 WHERE 条件;,条件写错了全删了。

清空表数据,TRUNCATE TABLE 表名;,比DELETE快。

表间数据加,INSERT INTO 目标表名 SELECT 列名 FROM 源表;,选列自己定。

查所有数据,SELECT FROM 表名;,通杀。

按条件查,SELECT FROM 表名 WHERE 条件;,简单过滤。

查不重复数据,SELECT DISTINCT 列名 FROM 表名 WHERE 条件;,去重。

排升序,SELECT FROM 表名 ORDER BY 列名;,从小到大。

排降序,SELECT FROM 表名 ORDER BY 列名 DESC;,从大到小。

带条件排序,SELECT FROM 表名 WHERE 条件 ORDER BY 列名;,先筛选再排序。

自定义列名,SELECT 新列名 = 原列名 FROM 表名 WHERE 条件;,随便取。

取前N行,SELECT TOP N FROM 表名;,N自己定。

取前N%行,SELECT TOP N PERCENT FROM 表名;,百分比自己定。

求和,SELECT SUM(列名) AS 新列名 FROM 表名 WHERE 条件;,加法。

求平均,SELECT AVG(列名) AS 新列名 FROM 表名 WHERE 条件;,平均数。

计数,SELECT COUNT(列名) AS 新列名 FROM 表名 WHERE 条件;,非空数。

找最大值,SELECT MAX(列名) AS 新列名 FROM 表名 WHERE 条件;,最大数。

找最小值,SELECT MIN(列名) AS 新列名 FROM 表名 WHERE 条件;,最小数。

分组,SELECT 聚合函数(列名) FROM 表名 GROUP BY 列名 HAVING 条件;,先分组再筛选。

模糊查,SELECT FROM 表名 WHERE 列名 LIKE '字符通配符';,含模糊符号。

查包含值,SELECT FROM 表名 WHERE 列名 IN ('值1 ', '值2 ');,列举值。

查不包含值,SELECT FROM 表名 WHERE 列名 NOT IN ('值1 ', '值2 ');,排除值。

查范围值,SELECT FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2 ;,区间查。

内连接查,SELECT FROM 表1 INNER JOIN 表2 ON 表1 .列 = 表2 .列 WHERE 条件;,匹配的行。

你空间里这些够用吗?

❤️ SQL零基础入门必知必会!

哎哟,说起SQL零基础入门,这事儿我懂点。
咱们得从基础概念说起。

SQL,这玩意儿啊,就是个访问和处理数据库的标准计算机语言。
说人话就是,它能让咱们把数据库里的数据给弄出来,变成我们能看懂的信息,提高工作效率。
这玩意儿应用可广了,现在哪个公司不用数据库啊,掌握了SQL,那工作起来轻松多了。

接下来,咱们得知道SQL语言分两大类,一个是数据操作语言(DML),一个是数据定义语言(DDL)。
DML又细分为数据查询语言(DQL)和数据操纵语言(DML)。
DQL就是SELECT,负责查询数据;DML就是INSERT、UPDATE、DELETE,负责修改数据。

数据库嘛,就像是咱家冰箱,专门用来放东西的。
在关系型数据库里,数据都存放在表里,表就是由列和行组成的,列就是数据的不同字段,行就是数据记录。

基础SQL语句有几个,咱们得掌握:

创建表:用CREATE TABLE语句。

插入数据:用INSERT INTO语句。

查询数据:用SELECT语句。

更新数据:用UPDATE语句。

删除数据:用DELETE语句。

高级功能的话,像JOIN啊,就是用来关联多张表的,UNION是用来合并查询结果的。
NOT NULL就是确保字段不能为空。

还有视图,这玩意儿就是基于SQL查询结果的表视图,方便咱们查看数据。

再说说SQL函数,这东西可多了。
统计函数有AVG、COUNT、MAX、MIN、SUM,这些都是统计数据的。
分组函数有GROUP BY和HAVING,就是用来分组数据的。
数据转换函数有UCASE、UPPER、LCASE、LOWER、LEN/LENGTH,这些就是转换数据类型的。
日期时间函数有ROUND、NOW/SYSDATE,就是处理日期和时间的。

总的来说,掌握了这些基础知识和常用语句,入门SQL就差不多了。
说实话,我当时也没想明白这些概念,但是通过不断学习和实践,慢慢就明白了。
所以,想要入门SQL,得多练手,多实践。

sql必备50条语句 sql最常用的50条语句

哎,说起SQL必备的5 0条语句,这可是数据库管理里的“老司机”们的心头好。
我混迹问答论坛行业这么多年,见证了SQL语句从初学到精通的历程,下面就来给你细数这5 0条里的那些事儿。

先说基础查询,这可是基本功,得牢。
全表查询就像翻箱倒柜,直接SELECT FROM table_name;。
条件查询就得聪明点,比如查工资超过5 万的员工,就得用WHERE salary > 5 0000;。

有意思的是,多条件查询时得用AND和OR来区分,像工资和部门都符合条件的,就得写成WHERE salary > 5 0000 AND dept_id = 3 ;。
要是不小心用了OR,那结果可能就得你重新找茬了。

说到排序查询,记得用ORDER BY,想降序就加DESC,想升序就加ASC。
我以前有个朋友,做数据分析时喜欢用这个功能,一排排数据清晰得很。

限制返回行数和分页查询也是挺实用的,LIMIT number就是限制显示数量,分页查询的话,得记牢LIMIT offset, number,这个offset是指跳过的行数。

去重查询的时候,DISTINCT可就派上大用场了,免得数据重复烦人。

列选择查询和计算列查询,前者就是选几列出来,后者可以在结果里加个新列,比如工资乘以1 .1 ,加个AS叫新列名。

接下来是JOIN操作,内连接INNER JOIN、左连接LEFT JOIN、右连接RIGHT JOIN、全外连接FULL OUTER JOIN,这些都是连接两个表的,具体用法根据业务需求来定。

自连接和交叉连接,自连接是同一个表自己连接自己,交叉连接就是两个表的笛卡尔积,这两个比较特殊。

多表连接、非等值连接、自然连接、USING简化连接,这些都是在复杂查询时经常用到的。

数据操作语句里,插入数据、批量插入、从查询插入这些都很常见。
更新数据、多列更新、基于查询更新,这些都是改数据时的常用操作。

删除数据、清空表数据,这两个操作要慎用,清空表数据TRUNCATE TABLE可是直接删除表中所有数据的,得小心点。

合并数据(UPSERT),MySQL里是INSERT INTO ... ON DUPLICATE KEY UPDATE,PostgreSQL里是INSERT INTO ... ON CONFLICT ...
高级查询技巧,分组查询、分组后过滤、子查询、相关子查询、派生表查询、公用表表达式(CTE)、递归CTE,这些都是复杂查询时用的,特别是CTE,可以简化查询结构。

窗口函数,ROW_NUMBER()、RANK()、DENSE_RANK(),这些函数可以在查询结果中按某种顺序排列行。

说到这,我突然想到一个细节,比如窗口函数的RANK()和DENSE_RANK(),其实都是用来给结果集中的行排名的,但是DENSE_RANK()会处理并列情况,而RANK()则不会。

好了,就先说这么多,这些SQL语句可是数据库管理中的“硬通货”,掌握好了,工作效率能提高不少。
不过说到底,数据库管理这门学问深着呢,还得在实践中不断摸索。