您的位置:首页 > 游戏 > 手游 > 广州正佳广场游玩攻略_淘宝无货源一键铺货软件_合肥瑶海区_合肥网站设计

广州正佳广场游玩攻略_淘宝无货源一键铺货软件_合肥瑶海区_合肥网站设计

2025/1/9 23:26:34 来源:https://blog.csdn.net/aaaa_1111111/article/details/143932850  浏览:    关键词:广州正佳广场游玩攻略_淘宝无货源一键铺货软件_合肥瑶海区_合肥网站设计
广州正佳广场游玩攻略_淘宝无货源一键铺货软件_合肥瑶海区_合肥网站设计

目录

函数

文本处理

日期和时间处理

数值处理

汇总

数据定义

数据库(DATABASE)

创建数据库

删除数据库

选择数据库

数据表(TABLE)

创建数据表

删除数据表

修改数据表

视图(VIEW)

创建视图

删除视图

索引(INDEX)

创建索引

添加索引

创建唯一索引

删除索引

约束

事务处理

权限控制


函数

不同数据库的函数往往各不相同,因此不可移植。本节主要以 MySQL 的函数为例。

文本处理

函数说明
LEFT()RIGHT()左边或者右边的字符
LOWER()UPPER()转换为小写或者大写
LTRIM()RTRIM()去除左边或者右边的空格
LENGTH()长度,以字节为单位
SOUNDEX()转换为语音值

其中, SOUNDEX() 可以将一个字符串转换为描述其语音表示的字母数字模式。

SELECT *
FROM mytable
WHERE SOUNDEX(col1) = SOUNDEX('apple')

日期和时间处理

  • 日期格式:YYYY-MM-DD
  • 时间格式:HH:MM:SS
函 数说 明
AddDate()增加一个日期(天、周等)
AddTime()增加一个时间(时、分等)
CurDate()返回当前日期
CurTime()返回当前时间
Date()返回日期时间的日期部分
DateDiff()计算两个日期之差
Date_Add()高度灵活的日期运算函数
Date_Format()返回一个格式化的日期或时间串
Day()返回一个日期的天数部分
DayOfWeek()对于一个日期,返回对应的星期几
Hour()返回一个时间的小时部分
Minute()返回一个时间的分钟部分
Month()返回一个日期的月份部分
Now()返回当前日期和时间
Second()返回一个时间的秒部分
Time()返回一个日期时间的时间部分
Year()返回一个日期的年份部分

数值处理

函数说明
SIN()正弦
COS()余弦
TAN()正切
ABS()绝对值
SQRT()平方根
MOD()余数
EXP()指数
PI()圆周率
RAND()随机数

汇总

函 数说 明
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM()返回某列值之和

AVG() 会忽略 NULL 行。

使用 DISTINCT 可以让汇总函数值汇总不同的值。

SELECT AVG(DISTINCT col1) AS avg_col
FROM mytable

接下来,我们来介绍 DDL 语句用法。DDL 的主要功能是定义数据库对象(如:数据库、数据表、视图、索引等)

数据定义

数据库(DATABASE)

创建数据库
CREATE DATABASE test;
删除数据库

DROP DATABASE test;
选择数据库

USE test;

数据表(TABLE)

创建数据表

普通创建

CREATE TABLE user (id int(10) unsigned NOT NULL COMMENT 'Id',username varchar(64) NOT NULL DEFAULT 'default' COMMENT '用户名',password varchar(64) NOT NULL DEFAULT 'default' COMMENT '密码',email varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱'
) COMMENT='用户表';

根据已有的表创建新表

CREATE TABLE vip_user AS
SELECT * FROM user;
删除数据表

DROP TABLE user;
修改数据表

添加列

ALTER TABLE user
ADD age int(3);

删除列

ALTER TABLE user
DROP COLUMN age;

修改列

ALTER TABLE `user`
MODIFY COLUMN age tinyint;

添加主键

ALTER TABLE user
ADD PRIMARY KEY (id);

删除主键

ALTER TABLE user
DROP PRIMARY KEY;

视图(VIEW)

定义:

  • 视图是基于 SQL 语句的结果集的可视化的表。
  • 视图是虚拟的表,本身不包含数据,也就不能对其进行索引操作。对视图的操作和对普通表的操作一样。

作用:

  • 简化复杂的 SQL 操作,比如复杂的联结;
  • 只使用实际表的一部分数据;
  • 通过只给用户访问视图的权限,保证数据的安全性;
  • 更改数据格式和表示。

 

创建视图

CREATE VIEW top_10_user_view AS
SELECT id, username
FROM user
WHERE id < 10;
删除视图

DROP VIEW top_10_user_view;

索引(INDEX)

索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。

索引的作用就相当于书的目录。打个比方: 我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就行了。

优点

  • 使用索引可以大大加快 数据的检索速度(大大减少检索的数据量), 这也是创建索引的最主要的原因。
  • 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

缺点

  • 创建索引和维护索引需要耗费许多时间。当对表中的数据进行增删改的时候,如果数据有索引,那么索引也需要动态的修改,会降低 SQL 执行效率。
  • 索引需要使用物理文件存储,也会耗费一定空间。

但是,使用索引一定能提高查询性能吗?

大多数情况下,索引查询都是比全表扫描要快的。但是如果数据库的数据量不大,那么使用索引也不一定能够带来很大提升。

创建索引

CREATE INDEX user_index
ON user (id);
添加索引

ALTER table user ADD INDEX user_index(id)
创建唯一索引

CREATE UNIQUE INDEX user_index
ON user (id);
删除索引

ALTER TABLE user
DROP INDEX user_index;

约束

SQL 约束用于规定表中的数据规则。

如果存在违反约束的数据行为,行为会被约束终止。

约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

约束类型:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

创建表时使用约束条件:

CREATE TABLE Users (Id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增Id',Username VARCHAR(64) NOT NULL UNIQUE DEFAULT 'default' COMMENT '用户名',Password VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '密码',Email VARCHAR(64) NOT NULL DEFAULT 'default' COMMENT '邮箱地址',Enabled TINYINT(4) DEFAULT NULL COMMENT '是否有效',PRIMARY KEY (Id)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

接下来,我们来介绍 TCL 语句用法。TCL 的主要功能是管理数据库中的事务。

事务处理

不能回退 SELECT 语句,回退 SELECT 语句也没意义;也不能回退 CREATEDROP 语句。

MySQL 默认是隐式提交,每执行一条语句就把这条语句当成一个事务然后进行提交。当出现 START TRANSACTION 语句时,会关闭隐式提交;当 COMMITROLLBACK 语句执行后,事务会自动关闭,重新恢复隐式提交。

通过 set autocommit=0 可以取消自动提交,直到 set autocommit=1 才会提交;autocommit 标记是针对每个连接而不是针对服务器的。

指令:

  • START TRANSACTION - 指令用于标记事务的起始点。
  • SAVEPOINT - 指令用于创建保留点。
  • ROLLBACK TO - 指令用于回滚到指定的保留点;如果没有设置保留点,则回退到 START TRANSACTION 语句处。
  • COMMIT - 提交事务。

-- 开始事务 START TRANSACTION; -- 插入操作 A INSERT INTO `user` VALUES (1, 'root1', 'root1', 'xxxx@163.com'); -- 创建保留点 updateA SAVEPOINT updateA; -- 插入操作 B INSERT INTO `user` VALUES (2, 'root2', 'root2', 'xxxx@163.com'); -- 回滚到保留点 updateA ROLLBACK TO updateA; -- 提交事务,只有操作 A 生效 COMMIT;

接下来,我们来介绍 DCL 语句用法。DCL 的主要功能是控制用户的访问权限。

权限控制

要授予用户帐户权限,可以用GRANT命令。要撤销用户的权限,可以用REVOKE命令。这里以 MySQL 为例,介绍权限控制实际应用。

GRANT授予权限语法:

GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];

简单解释一下:

  1. GRANT关键字后指定一个或多个权限。如果授予用户多个权限,则每个权限由逗号分隔。
  2. ON privilege_level 确定权限应用级别。MySQL 支持 global(*.*),database(database.*),table(database.table)和列级别。如果使用列权限级别,则必须在每个权限之后指定一个或逗号分隔列的列表。
  3. user 是要授予权限的用户。如果用户已存在,则GRANT语句将修改其权限。否则,GRANT语句将创建一个新用户。可选子句IDENTIFIED BY允许您为用户设置新的密码。
  4. REQUIRE tsl_option指定用户是否必须通过 SSL,X059 等安全连接连接到数据库服务器。
  5. 可选 WITH GRANT OPTION 子句允许您授予其他用户或从其他用户中删除您拥有的权限。此外,您可以使用WITH子句分配 MySQL 数据库服务器的资源,例如,设置用户每小时可以使用的连接数或语句数。这在 MySQL 共享托管等共享环境中非常有用。

 

REVOKE 撤销权限语法:

REVOKE   privilege_type [(column_list)][, priv_type [(column_list)]]...
ON [object_type] privilege_level
FROM user [, user]...

简单解释一下:

  1. REVOKE 关键字后面指定要从用户撤消的权限列表。您需要用逗号分隔权限。
  2. 指定在 ON 子句中撤销特权的特权级别。
  3. 指定要撤消 FROM 子句中的权限的用户帐户。

GRANTREVOKE 可在几个层次上控制访问权限:

  • 整个服务器,使用 GRANT ALLREVOKE ALL
  • 整个数据库,使用 ON database.*
  • 特定的表,使用 ON database.table
  • 特定的列;
  • 特定的存储过程。

新创建的账户没有任何权限。账户用 username@host 的形式定义,username@% 使用的是默认主机名。MySQL 的账户信息保存在 mysql 这个数据库中。

USE mysql; SELECT user FROM user;

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com