mysql onesql_MYSQL服务之SQL语句应用 (一)

一、SQL语句的语言特点

1.一体化:SQL集数据定义DDL、数据操纵DML和数据控制DCL于一体,可以完成数据库中的全部工作。

2.使用方式灵活:它具有两种使用方式,即可以直接以命令方式交互使用;也可以嵌入使用,嵌入到C、C++、FORTRAN、COBOL、JAVA等主语言中使用。

3.非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。

4.语言简洁,语法简单,好学好用:在ANSI标准中,只包含了94个英文单词,核心功能只用6个动词,语法接近英语口语。

二、SQL语句的语句结构

1、数据定义语言(DDL) : Data Defination Language;

用来定义数据对象的,包含CREATE(增)、DROP(删)、ALTER(改)语句。

2、数据操作语言(DML):Data Manapulation Language;

此语句主要是操作数据而不是操作对象,包含INSERT(插入), DELETE(删除), UPDATE(更新)语句。

3、数据查询语言(DQL):Data Query Language;

数据检索语句,以从表中获取相关数据信息,SELECT(查询)语句。

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

用于对用户的授权管理的语句,包含GRANT(授权), REVOKE(收回权限)语句。

三、SQL语句中的数据类型

1、字符型 ,以字符格式存储CHAR(n) : 定长字符

VARCHAR(n) :可变长字符

BINARY(n) :二进制字符

VARBINARY(n) :可变长二进制字符

TEXT :文本型数据

BLOB :二进制大对象

修饰符:NOT NULL , DEFAULT ' '

2、数值型 ,以数值格式存储

1)、精确数值型

① 整型数据

TINYINT: 1byte, -128, 127 0,255 微×××

SMALLINIT: 2bytes, -32768, 32767 0,65535 小×××

MEDIUMINT: 3bytes, 0,2^24 中×××

INT: 4bytes, 0,2^32 整型

BIGINT: 8bytes, 0,2^64 大整型

修饰符:NOT NULL, DEFAULT '', UNSIGNED, AUTO_INCREMENT

②浮点型数据

FLOAT 单精度

DOUBLE 双精度

REAL

修饰符:NOT NULL, DEFAULT ' '

3、日期时间型DATE

TIME

DATETIME

YEAR(2), YEAR(4)

TIMESTAMP

修饰符:NOT NULL, DEFAULT ' '

4、布尔型 ,1为真,0为假

5、内置类型ENUM, SET

修饰符:NOT NULL, DEFAULT ' '

四、mysql客户端常用的命令

不用分号结尾

1、quit | \q :退出mysql;

2、delimier | \d : 如何改变语句结束符;

3、go | \g : 无论结束符是什么都送到服务器端;

4、use | \u : 设定默认数据库;

5、ego | \G : 结果取回,纵向显示;

6、system | \! : 执行系统命令而不用退出当前mysql

五、mysql服务端的相关命令

必须使用分号结尾

1、 显示服务器参数变量,有些变量的值可以修改,能够改变mysql的工作特性,

有些可以动态调整,即刻生效;另外一些只能修改配置文件后,重启生效;mysql> show [global|session] variables;

663f977ca815b4eb865498734d1d8293.png

2、显示服务器状态变量,记录了当前包括过去的时间内mysql的运行统计数据。mysql> show [global|session] status;

8d97b3ae3a8a25bfe6cc17214ca64bfa.png

3、显示所支持的所有字符集;mysql> SHOW CHARACTER SET;

8b65795eadd9e60b214610dcc42af3b7.png

4、显示所有字符集的排序规则mysql> SHOW COLLATION;

575e23ca0f7026f2fd692154318c4783.png

5、显示当前mysql版本号

mysql> SELECT VERSION();

6、显示有权限访问的所有数据库

mysql> SHOW DATABASES;

7d85448c798e9407285af828fc90a91d.png

7、显示默认数据库

mysql> SELECT DATABASE();

8、创建名为DB_NAME的数据库

mysql> CREATE DATABASE DB_NAME;

d33e8d02eda6850d5a1d23d236ed3c98.png

9、删除名为DB_NAME的数据库

mysql> DROP DATABASE DB_NAME;

b82072a9045c3d7db3b34264c4aae224.png

六、mysql的执行方式

1、交互式方式

① -h | --host : 远程连接主机

② -u | --user : 指定用户

③ -p | --password :输入密码

④ -D | --database : 登录之后,直接设定默认库

⑤ -e 'SQL_Statement;' : 不用登录而是连接后,输入命令,直接取回结果

2、批处理方式

使用sql脚本

mysql OPTIONS < script.sql

mysql> source /path/to/script.sql

七、用户管理

1、创建用户mysql>CREATE USER username@host [IDENTIFIED BY 'password'];

2、用户或主机可以使用通配符

%:匹配任意长度的任意字符

_: 匹配任意单个字符

3、用户授权mysql>GRANT ALL PRIVILEGES ON dbname.tablename TO username@host [IDENTIFIED BY 'password'];

4、修改用户密码mysql> SET PASSWORD FOR username@host=PASSWORD('password');

5、删除用户mysql>DROP USER username@host;

八、关系数据型数据库

1、主键 primary key

不能为空,不能重复,惟一;

2、惟一键 uniq key

可以为空,惟一;

3、外键  foreign key

引用性约束

4、检查性约束

九、表管理

1、创建表mysql>CREATE TABLE tb_name (col1 defination, col2 defination, ..., key defination);

2、删除表mysql>DROP TABLE tb_name;

十、SELECT语句用法

mysql>SELECT 字段 FROM 表 WHERE;

1、比较运算:>,=,<=,=,!=

2、通配符:LIKE

% 任意长度的任意字符

_任意单个字符

3、RLIKE :支持正则表达式

十一、DML 数据操作语言的用法

1、INSERT 插入语句用法mysql> INSERT INTO 表 字段 VALUES;

2、UPDATE 更新语句用法mysql> UPDATE 表名 SET 字段名=值 WHERE;

3、DELETE 删除语句用法mysql> DELETE FROM 表名 WHERE 条件

实战案例

MySQL基础操作练习(所属的库叫做mytestdb):

1、新建如下表(包括结构和内容):

ID    Name          Age     Gender     Course

1     Ling Huchong   24      Male       Hamogong

2     Huang Rong    19      Female     Chilian Shenzhang

3     Lu Wushaung   18      Female     Jiuyang Shenggong

4     Zhu Ziliu     52      Male       Pixie Jianfa

5     Chen Jialuo   22      Male       Xianglong Shiba Zhang

f93af1568d3ad213a539404b4e1c3a6c.png

4aec5b796bd95337e9930fa2c006b4ef.png

74e941eda9d56e3a20f6eeb9cb80719e.png

完成如下操作

(1)找出性别为女性的所有人;

43548f63bab07996ca40e2329b696bea.png

(2)找出年龄大于20的所有人;

7a42cb413ddedbe1417af47d6fa07493.png

(3)修改Zhu Ziliu的Course为Kuihua Baodian;

9136f37bbb7a2201c6e41c85a2b0efa4.png

(4)删除年龄小于等于19岁的所有人;

fad5286260ed7007a9262399fe8dda40.png

(5)创建此表及所属的库;

(6)授权给testuser对testdb库有所有访问权限;

mysql> CREATE DATABASE mytestdb

use mytestdb

myaql> CREATE TABLE students (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

Name CHAR(30) NOT NULL UNIQUE KEY,

Age TINYINT UNSIGNED, Gender CHAR(1) DEFAULT 'M',

Course VARCHAR(50) NOT NULL);

mysql> INSERT students (Name,Age,Gender,Course)VALUES('Ling Huchong',24,'M','Hamogong'),

('Huang Rong',19,'F','Chilian Shenzhang'),

('Lu Wushuang',18,'F','Jiuying Shengong'),

('Zhu Ziliu',52,'M','Pixie Jianfa'),

('Chen Jialuo',22,'M','Xianglong Shiba Zhang');

mysql> SELECT name FROM students WHERE Gender='Female';

mysql> SELECT name FROM students WHERE Age>20;

mysql> UPDATE students SET Course='Kuihua Baodian' WHERE name='Zhu Ziliu';

mysql> DELETE FROM students WHERE Age<=19;

mysql> GRANT ALL ON testdb.* TO 'testuser'@'%';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值