数据库系统原理之SQL(三)
数据库系统原理之SQL(三)
1. SQL的组成
1. 数据查询
2. 数据定义
3. 数据操作
4. 数据控制
2. 数据定义语言
CREATE创建数据库或数据库对象
创建数据库
~~~
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARSET SET utf8 [DEFAULT] COLLATE utf8_general_ci
~~~
创建表
~~~
#创建表并设置主键和索引
CREATE TABLE table_name (id int not null AUTO_INCREMENT,name char(50) not null default "",age int null,PRIMARY KEY(id),INDEX index_age(age));
~~~
查看数据库
~~~
#可以根据正则匹配或者where从句来获取想看到的数据库
SHOW {DATABASES | SCHEMAS} [LIKE’pattern’ | WHERE expr]
ALTER对数据库或数据库对象进行修改
修改数据库
ALTER DATABASE db_name DEFAULT CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
更新表
在表中添加一个字段,并在原表的sex字段之后
ALTER TABLE table_name
ADD COLUMN city char(50) not null default "" after sex;
修改表中的列名或数据类型
修改表table_name中的字段c_name为name,并设置字段类型
ALTER TABLE table_name
CHANGE COLUMN c_name name char(50) not null default "";
~~~修改或删除指定列的默认值
ALTER TABLE table_name
ALTER COLUMN [drop default | set default "" ]
只修改指定列的数据类型,不会干涉它的列名
#first 将此列设为表的第一列
ALTER TABLE table_name
MODIFY COLUMN name char(25) not null first;
删除表中多余的字段
ALTER TABLE table_name
DROP COLUMN name;
为表重新命名
ALTER TABLE table_name
RENAME TO back_table_name;
RENAME TABLE table_name TO back_name;
DROP删除数据库或数据库对象
删除数据库
DROP{DATABASE|SCHEMA}[IF EXISTS]db_name
删除表
DROP TABLE [IF EXISTS] table_name [,table_name2]
查看表
SHOW [FULL] COLUMNS {FROM | IN} tbl_name[{FROM | IN} db_name]
[LIKE’pattern’ | WHERE expr]
{DESCRIBE | DESC} tbl_name [col_name | wild]
3. 数据操纵语言
- SELECT从表中或视图中检索数据(查)
- INSERT将数据插入插入到表或视图中(增)
- UPDATE修改表或视图中的数据(改)
- DELETE删除表或视图中的数据(删)
4. 数据控制语言
- GRANT授予权限
- REVOKE收回权限
5. 索引定义
索引是提高数据文件访问效率的有效方法
- 弊端:
- 索引是以文件的形式存储的,如果有大量的索引,索引文件可能比数据文件更快达到最大的文件尺寸;
- 索引在提高查询速度的同时,会降低更新表的速度。
索引类型
- 普通索引(INDEX或KEY)
- 唯一性索引(UNIQUE)
- 主键(PRIMARY KEY)
创建索引(CREATE INDEX不能创建主键索引)
#在table_name表上的column字段上创建唯一索引index_name,可设置长度和升序降序
CREATE [UNIQUE] INDEX index_name ON table_name (column [(length)][ASC | DESC])
#为表table_name添加索引index_name
ALTER TABLE table_name ADD INDEX index_name(name);
查看索引
SHOW {INDEX | INDEXES | KEYS} {FROM | IN} table_name [{FROM | IN} db_name] [WHERE expr]
删除索引
DROP INDEX index_name ON table_name
ALTER TABLE table_name DROP PRIMARY KEY,DROP INDEX index_name;
6. MySQL内置函数
| 函数 | 描述 | 示例 |
|---|---|---|
| CURDATE() | 返回当前日期 | SELECT CURDATE()---- 2018-09-19 |
| ABS(X) | 返回X的绝对值 | select ABS(-5) ---返回5 |
| AVG(expression) | 返回表达式的平均值 | 返回一个班年龄的平均值---SELECT AVG(age) from class |
| COUNT(expression) | 返回记录数量 | 返回A表中的数据量---SELECT COUNT(*) from A |
| MAX(expression) | 返回字段中的最大值 | 返回一个班中最大的年龄---SELECT MAX(age) from class |
| MIN(expression) | 返回字段中的最小值 | 返回一个班中最小的年龄---SELECT MIN(age) from class |
| SUM(expression) | 返回指定字段的总和 | 返回一个班的分数总和---SELECT SUM(fraction) from class |
数据库系统原理之SQL(三)的更多相关文章
- 数据库系统原理之SQL(四)
数据库系统原理之SQL(四) 1. 数据更新 插入数据 INSERT-VALUES语句 #插入多条数据 insert [into] table_name (column_name,...) value ...
- Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx 1.1. 数据库的类型,网状,层次,树形数据库,kv数据库.oodb2 1.2. Er模型2 1.3. Sql2 ...
- php面试专题---Mysql索引原理及SQL优化
php面试专题---Mysql索引原理及SQL优化 一.总结 一句话总结: 注意:只写精品 1.为表设置索引要付出代价 是什么? 存储空间:一是增加了数据库的存储空间 修改插入变动索引时间:二是在插入 ...
- 数据库系统原理——ER模型与关系模型
原文链接: http://blog.csdn.net/haovip123/article/details/21614887 犹记得第一次看<数据库系统原理>时看天书的感觉,云里雾里:现在已 ...
- 基于Spark1.3.0的Spark sql三个核心部分
基于Spark1.3.0的Spark sql三个核心部分: 1.可以架子啊各种结构化数据源(JSON,Hive,and Parquet) 2.可以让你通过SQL,saprk内部程序或者外部攻击,通过标 ...
- Linq to Sql : 三种事务处理方式
原文:Linq to Sql : 三种事务处理方式 Linq to SQL支持三种事务处理模型:显式本地事务.显式可分发事务.隐式事务.(from MSDN: 事务 (LINQ to SQL)).M ...
- JAVA-Unit01: 数据库原理 、 SQL(DDL、DML)
Unit01: 数据库原理 . SQL(DDL.DML) SQL语句是不区分大小写的,但是行业里习惯将关键字与分关键字用大小写岔开以提高可读性. SELECT SYSDATE FROM dual DD ...
- WebSocket原理与实践(三)--解析数据帧
WebSocket原理与实践(三)--解析数据帧 1-1 理解数据帧的含义: 在WebSocket协议中,数据是通过帧序列来传输的.为了数据安全原因,客户端必须掩码(mask)它发送到服务器的所有 ...
- 7.27实习培训日志-Oracle SQL(三)
Oracle SQL(三) 视图 特性 简单视图 复杂视图 关联的表数量 1个 1个或多个 查询中包含函数 否 是 查询中包含分组数据 否 是 允许对视图进行DML操作 是 否 CREATE [OR ...
随机推荐
- 预学第三天:Ge常用t快捷键,码云,Git使用
目录 Get常用快捷键 码云及Git的使用 Get常用快捷键 git init #创建一个本地的仓库 **gie add test.txt #指定文件添加 ***git add . #当前文件夹下所有 ...
- pgsql查询优化之模糊查询
前言 一直以来,对于搜索时模糊匹配的优化一直是个让人头疼的问题,好在强大pgsql提供了优化方案,下面就来简单谈一谈如何通过索引来优化模糊匹配 案例 我们有一张千万级数据的检查报告表,需要通过检查报告 ...
- Devops-运维效率之数据迁移自动化
overmind系统上线三个月,累计执行任务800+,自动审核执行SQL超过5000条,效率提升相当明显,离"一杯咖啡,轻松运维"的目标又进了一步. 写在前边 overmind系统 ...
- 洛谷P4995 跳跳!题解
求关注,求赞,求评论QAQ 题目:https://www.luogu.org/problemnew/show/P4995 简单描述一下吧,就是说有n块石头,起始可以跳到任何一块上面,接着也是,只不过每 ...
- ASP.NET Core[源码分析篇] - Startup
应用启动的重要类 - Startup 在ASP.NET Core - 从Program和Startup开始这篇文章里面,我们知道了Startup这个类的重要性,它主要负责了: 配置应用需要的服务(服务 ...
- 我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc
- 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...
- 动态规划_Apple Catching_POJ-2385
It and ) in his field, each full of apples. Bessie cannot reach the apples when they are on the tree ...
- python Django编写接口并用Jmeter测试
一.环境准备 python3.6.7 Pycharm 二.创建项目 我这里是在Django项目中新建了个APP,目录结构如下图所示: 那么怎么在已有的Django项目中新建APP并进行配置呢: 2.1 ...
- Asp.Net MVC HttpPost用法
一个Action只能用一个http 特性,例如:HttpPost 不能与HttpGet 或者多个HttpPost重复使用,否则会出错 也可以用 [AcceptVerbs("put" ...