SQL数据库: 数据库基础操作+书写规范

数据库基础操作

SQL可实现的操作:

操作语言
建表CREATE TABLE table (c1 int,c2 varchar(50),c3 varchar(50));
删表DROP TABLE table;
修改列ALTER TABLE table ADD/DROP/ALERT column_name (datatype);
选择SELECT c1,c2 FROM table WHERE … ;
插入INSERT INTO a VALUES(9,30,30);
更新UPDATE table SET c1=value1,c2=value2,…WHERE… ;
删除DELETE FROM table WHERE …;
连接select * from [user] full JOIN phone ON [user].id=phone.id
WHERE
HAVING筛选分组后的各组数据SELECT FROM WHERE GROUP BY HAVING ;
操作结果处理WHERE
ANDSELECT * FROM table WHERE c1=‘a’ AND c1=‘b’;
ORSELECT * FROM table WHERE c1=‘a’ OR c1=‘b’;
排序 ORDER BY关键字用于对结果集按照一个列或者多个列进行排序,降序 ORDER BY 列名 DESC,列名 DESC
指定模式LIKE操作符用于在 WHERE 子句中搜索列中的指定模式。
返回行数COUNT(c1)SELECT COUNT(c1) FROM table WHERE ;
别名 AS,AS可省略名字AS别名,如SELECT 列名 FROM 表名 AS 别名;

SQL join 用于把来自两个或多个表的行结合起来:INNER JOIN与JOIN(INNER JOIN与JOIN是相同
), LEFT JOIN(左加入:左满右空)、RIGHT JOIN、FULL JOIN

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

处理视图VIEW,索引

触发器

Create TRIGGER [dbo].[Trigger_Insert]
   ON  a
   AFTER INSERT
AS 
BEGIN

	Declare @age int;  --@age为局部变量
    Select @age=Age  From inserted
	IF(@age<150)
		Begin
			Insert into a(id, name, age)
			Select ID, Name, Age From inserted
		END
	ELSE
		Begin
		    print('年龄应小于150')
			rollback transaction     --数据回滚
		END
    
END
SELECT name, AVG(age) AS age FROM a
GROUP BY name HAVING AVG(age) > 12

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在线练习

其他

报错处理
在这里插入图片描述
user属于sql里的关键字,所以会报错,一般不要用关键字作为表名,如果关键字做表名用[]括起来
在这里插入图片描述

书写规范

1.SQL语句全部使用小写

2.引用字符时用单引号

3.在子查询中前后加上括号

4.禁止使用select * 形式的语句,必须指出select的具体字段。select子句中避免使用’*’ 数据库在解析的过程中,会将‘*’依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间

5.禁止使用 insert into table values(?,?,?),必须指出具体要赋值的字段,即 insert into tablea (col1, col2,…) values(?,?,…)

6.避免隐含的类型转换。例如在where子句中numeric 型和int型的列的比较或相加,字符串的转换等

7.禁止使用视图(视图 基本上都是 几张表之间的关联数据。对大数据量查询非常有压力)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值