mysql关系要素_数据库系统原理(第四章:SQL与关系数据库基本操作 )

MySQL

数据库

数据库系统原理(第四章:SQL与关系数据库基本操作 )

CgpOIF5EAWWAQ0y_AAcB-fDz9P0878.png

一、SQL概述

sql是结构化查询语言(Structured Query Language,SQL)是专门用来与数 据库通信的语言,它可以帮助用户操作关系数据库。

SQL的特点:

SQL不是某个特定数据库供应商专有的语言; SQL简单易学 ;SQL强大、灵活,可以进行非常复杂和高级的数据库操作

SQL的组成:

数据查询

数据定义语言(Data Definition Language,DDL)

数据操纵(DML)

数据控制(DCL)

*******************数据定义语言**********************

CREATE 创建数据库或数据库对象

ALTER 对数据库或数据库对象进行修改

DROP 删除数据库或数据库对象

************数据操纵语言(Data Manipulation Language,DML)***********

SELECT 从表或视图中检索数据

INSERT 将数据插入到表或视图中

UPDATE 修改表或视图中的数据

DELETE 从表或视图中删除数据

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

GRANT 用于授予权限

REVOKE 用于收回权限

二、MySQL预备知识

嵌入式和动态SQL规则:规定了SQL语句在高级语言程序设计中 使用的规范方法,以便适应较为复杂的应用

SQL 调 用(以便提高SQL的灵活性、有效性、共享性以及使SQL具有更多的高级语言的特征):SQL 例 程、调 用 规 则

MySQL使用基础:LAMP模式 、WAMP模式   L(Linux) A(Apache)M(MySQL) P(PHP、Perl、Python)

关系数据库管理系统(RDBMS):优点:体积小、速度快、开放源代码、遵循GPL

MySQL扩展语言要素

常量:也称字面值或标量值

字符串常量:用单引号或双引号括起来的字符序列,分为ASCII字符串常量和Unicode字符串常量

数值常量:整数常量、  浮点数常量

十六进制常量:每对十六进制数字被转换为一个字符,其最前面有一个字母“X”(或“x”)

时间日期常量:用单引号将表示日期时间的字符串括起来而构成的 例如:’2018-06-05’

位字段值

布尔值:TRUE:1  ;FALSE: 0

NULL值

变量:

用户变量:用户变量前常添加一个符号@,用于将 其与列名区分开

系统变量:大多数系统变量应用于其他SQL语句中 时,必须在系统变量前添加两个@

f9e74bb8fb4342f9b2843944a7d2771e.png

表达式 表达式是常量、变量、列名、复杂计算、运算符和函数的组合。

字符型表达式

数值型表达式

日期型表达式

d209eb1b5c38ba82a809e6380660b252.png

三、数据定义(DDL)

创建数据库(CREATE):使用CREATE  DATABASE 或  CREATE SCHEMA语句

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

[DEFAULT]CHARACTER SET[=]charset_name|[DEFAULT]COLLATE[=]collation_name

例句:create DATABASE test_sy CHARACTER SET ="UTF8" COLLATION ="utf8_general_ci";     CREATE DATABASE mysql_test;

字符集(character set):定义了字符以及字符的编码。

字符序(collation):指定字符集的 校对规则。

查看数据库(SHOW):查看数据库的所有表

SHOW {DATABASES |SCHEMAS}[LIKE’pattern’ | WHERE expr]

Like关键字用于匹配指定的数据库名称; Where从句用于指定数据库名称查询范围的条件

例句:SHOW DATABASES;  SHOW DATABASES LIKE "%test%";

SHOW TABLES:查看数据库非系统表

选择数据库(USE):USE db_name;  从一个数据库“跳转”到另一个数据库。

修改数据库:alert

mysql>ALTER DATABASEmysql_test-> DEFAULT CHARACTER SETgb2312-> DEFAULT COLLATE gb2312_chinese_ci;

删除数据库:

DROP{DATABASE|SCHEMA}[IF EXISTS]db_name

例句:DROP DATABASE hahaha;   DROP DATABASE IF EXISTS hahaha;

*****************************表定义**********************************

创建表:数据表是关系数据库中最重要、最基本的数据对象, 也是数据存储的基本单位。

数据表, 被定义为字段的集合 按(行 )和(列 )的格式来存储的, 每一( 行)代表一条记录, 每一(列 )代表记录中一个字段的取值。

CREATE[TEMPORARY]TABLEtbl_name

(

字段名1 数据类型[列级完整性约束条件][默认值]

[,字段名2 数据类型 [列级完整性约束条件][默认值]][,……]

[,表级完整性约束条件])[ENGINT=引擎类型];

若添加“TEMPORARY”,则为临时表

在一个已有数据库mysql_test中新建一个包含客户姓名、性别、地址、 联系方式等内容的客户基本信息表,要求将客户的id号指定为该表的 主键。

58cae72487a17d5b718c38c49363c866.png

PRIMARY KEY(cust_id):指定主键

数据类型:

整型int

浮点型double

布尔型bool

日期型date

时间戳timestamp

时间型time 定长

字符类型char

可变长字符varchar

更新表(ALTER):使用ALTER TABLE语句,增加或删减列、创建或取消索引、更改原有列的 数据类型、重新命名列或表,更改表的评注和表的引擎类型,为表重新创 建触发器、存储过程、索引和外键等。

1、ADD COLUMN

例如:向数据库mysql_test的表customers中添加一列,并命名为 cust_city,要求其不能为NULL,默认值为字符串“Wuhan”,且该列位 于原表cust_sex列之后。

ALTER TABLE mysql_test.customers ->ADD COLUMN cust_city char(10)NOT NULL DEFAULT ‘Wuhan’ AFTER cust_sex;

2、CHANGE[COLUMN]子句 修改表中列的名称或数据类型

4569ee2070985fdf7c15231de8cbf192.png

3、ALTER[COLUMN]子句 修改或删除表中指定列的默认值

ALTER TABLE mysql_test.customers ->ALTER COLUMN cust_city SET DEFAULT ‘Beijing’;

4、MODIFY[COLUMN]子句 只修改指定列的数据类型,不会干涉它的列名

ALTER TABLE mysql_test.customers ->MODIFY COLUMN cust_name char(20) FIRST;

5、DROP[COLUMN]子句 删除表中多余的列

ALTER TABLE mysql_test.customers ->DROP COLUMN cust_contact;

6、RENAME[TO]子句 为表重新赋予一个表名

ALTER TABLE mysql_test.customers ->RENAME TO mysql_test.backup_customers;

给表重命名表的第二种写法:RENAME TABLE db_a.old_table TO db_b.new_table;

7、DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [ ,tbl_name ] … [RESTRICT | CASCADE]

查看表结构:

SHOW [FULL] COLUMNS {FROM | IN} tbl_name[{FROM | IN} db_name] [LIKE’pattern’ | WHERE expr]

例如:SHOW COLUMNS FROM t_role;

{DESCRIBE | DESC} tbl_name [col_name | wild]

例如:DESC t_role;

数据更新

数据查询

视图

内容来源于网络,如有侵权请联系客服删除

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值