基本的SQL语句和规则

基本的SQL语句和规则


SQL背景

SQL(Structured Query Language,结构化查询语言)

使用关系模型的数据库应用语言

IBM上世纪70年代开发,后由美国国家标准局ANSI制定SQL标准

其中SQL92和SQL99今天依然遵循

不同数据库厂商的SQL语言标准都有特有内容

SQL分类

语言功能上分类:

DDL(Data Definition Languages、数据定义语言)

定义了不同的数据库、表、视图、索 引等数据库对象,还可以用来创建、删除、修改数据库和数据表的结构。

CREATE 、 DROP 、 ALTER等

       DML(Data Manipulation Language、数据操作语言)

              用于添加、删除、更新和查询数据库记 录,并检查数据完整性。

              INSERT 、 DELETE 、 UPDATE 、 SELECT

       DCL(Data Control Language、数据控制语言)

              定义数据库、表、字段、用户的访问权限和 安全级别。

              GRANT 、 REVOKE 、 COMMIT 、 ROLLBACK 、 SAVEPOINT等

在分类上不同人想法有所不同,不过大致如此


SQL语言规则和规范

SQL一句话可以分行写

每条命令结尾是;或\g或\G结束

字符串和日期时间类型数据使用单引号(’’)表示

列别名使用双引号(“”)

实际上MySQL单双引号不严谨,互换也不会报错,但是不符合SQL标准

MySQL 在 Windows 环境下是大小写不敏感的

MySQL在很多地方大小写不严谨,都不区分大小写,例如查询字符串’abc’和’ABC’一样

MySQL 在 Linux 环境下是大小写敏感的

注释:

       单行注释:#注释文字(MySQL特有的方式)

单行注释:-- 注释文字(--后面必须包含一个空格。)

多行注释:/* 注释文字 */

命令规则:

       数据库、表名不得超过30个字符,变量名限制为29个

       中间不要包含空格,不能重名

字段没有和保留字、数据库系统或常用方法冲突,若重复使用着重号(``)括起来


导入外部sql文件

通过命令行

source d:\mysqldb.sql

导入D盘的mysqldb数据库及其表

或者

通过图形化工具自带的功能


基本SELECT语句

SELECT...

       例如:SELECT 1+1;

SELECT...FROM

       SELECT 标识选择哪些列

       FROM 表示从哪个表中选择

       SELECT * FROM TableName; 选择全部列(字段)

       SELECT name,email FROM TableName; 选择name和email字段

在SELECT语句中可以运算

       SELECT salary * 12 "年工资" FROM employees;

       将月工资乘12并别名为年工资

字段间也可以运算


列的别名

举例:SELECT last_name AS name, commission_pct comm FROM employees;

       写法1:其中last_name是字段名,AS后跟别名

AS -》 alias(别名)

       写法2:其中commission_pct是字段名,后跟空格写别名

       写法3:跟AS或空格,将别名用双引号(“”)括起来

              SELECT employee_id id,email "e mail" FROM employees;

              可以在别名中加空格

              用双引号括起来别名是标准(用单引号括字符串等)

SELECT常用操作

去除重复行

       查询时去除掉重复结果

       SELECT DISTINCT department_id FROM employees;

       使用DISTINCT关键字写在SELECT之后

空值参与运算:

       若运算时遇到null的行

       则运算结果也为null,空值不等于空字符串

着重号:

       若数据库名或表名与关键字重复,则用着重号括起来(``)

对常数查询:

       显示一列的固定常数,在整合不同数据源时作为标记

SELECT "邮件",email FROM employees;

过滤:

WHERE关键字与运算符搭配

SELECT * FROM employees WHERE last_name='Abel';

查询表中last_name字段为Abel的行

显示表结构

DESCRIBE TableName;

DESC TableName;

Field:表示字段名称

Type:表示字段类型

Null:表示该列是否可以存储NULL值

Key:表示该列是否已编制索引。

PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一 部分;MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值

Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值