MySQL和SQL语言

DBMS:
数据管理独立性
有效地完成数据的存取
数据完整性和安全性
数据集中管理
并发存储与故障恢复
减少应用程序开发时间

SQL: structure query language

SQL-分析器-计划执行器-优化器-文件的存取方法-缓存器-磁盘空间管理器-故障恢复管理器


sql管理器内部机制

DDL,DML,DCL

MySQL:
社区版
企业版

软件包格式:
软件包管理器特有的格式:
rpm/包,.exe格式等
通用二进制格式
源程序

mysql客户端
-u USERNAME
-p
-h MYSQL_SERVER

-h 172.0.0.1
Linux:socket
Windows:memory

mysql客户端:
交互式模式
批处理模式
执行mysql脚本

交互式模式中的命令类别:
客户端命令
服务器端命令
必须使用语句结束符,默认为分号;

SQL接口:
Oracle,PL/SQL
SQL Server,T-SQL

用户:SUERNAME@HOST

\q 或者 quit 退出mysql

tcp/3306 以mysql 或mysql组的身份去运行

RDNMS:

mysql本身是一个数据库管理服务器,里面有很多数据库,很多数据表,里面有一个专门的mysql数据库,普通用户是看不到的,用来记录用户数据库的信息的,类似文件系统的,索引表;

关系数据库对象:


索引
视图
约束
存储过程
存储函数
触发器
游标
用户

权限
事务

表:
行,列
表:实体
行:row
列:field ,column

字段名称,数据类型,类型修饰符(限制)
字符
-- CHAR(n)
-- VARCHAR(n)
-- BINARY(n)
-- VARBINARY(n)
-- TEXT(n)小大中长
-- BLOB(n) 二进制大对象
数值
精确数值
整形
--TINYINT
--MEDIUMINT
--INT
--BICINT
修饰符:UNSIGNED,无符号
NOT NULL
十进制
--DECIMAL
近似数值型
浮点型
--FLOAT
--DOUBLE
日期
--DATE
--TIME
--DATETIME
--STAMP
布尔
内置:ENUM,SET

DDL :定义数据库对象
----CREATE
----ALTER
----DROP
DML:
----INSERT
----UPDATE
----DELETE
DCL:
----GRANT
----REVOKE

创建数据库:
CREATE DATABASE db_name
CREATE DATABASE [IF NOT EXISTS] db_name

DROP DATABASE [IF EXISTS] db_name (注意没有回收站)

创建表:
CREATE TABLE db_name.tb_name(col1,col2,...);
USE db_name设置默认数据库
SHOW TABLES;查看表
SHOW TABLES FROM db_name;查看库中的表

查看表的结构:DESC tb_name

删除表:DROP TABLE td_name;

修改表:
ALTER TABLE tb_name;
MODIFY
CHANGE
ADD
DROP

DML:
INSERT INTO tb_name (col1 ,col2 ) VALUES|VALUE ('STRING' ,NUM...);
INSERT INTO tb_name (col1 ,col2 ) VALUES|VALUE ('STRING' ,NUM...),('STRING' ,NUM...);--支持批量插入
可以不不指定字段,表示所有字段都插入值

UPDATE tb_name SET column=vlaue WHERE ;切记要加上条件,不然所有数据都被改了

REPLACE INTO

选择和投影
选择(针对行):指定以某字段作为搜索码,做逻辑比较,筛选符合条件的行;
--WHERE指定选择条件
投影(针对列):

DELETE FROM tb_name WHERE CONDITION;

选择:
SELECT 字段 FROM tb_name WHERE CONDITION;

  • :表示所有字段
    WHERE:没有条件表示显示所有行

创建用户:
CREATE USER 'USERNAME'@'HOST' [ IDENTIFIED BY 'PASSWORD' ] ;
DROP USER 'USERNAME'@'HOST'

HOST:
--IP:
--HOSTNMAE:
--NETWORK:
--通配符:
----:匹配任意单个字符。172.16.0.
----%:匹配任意长度的任意字符。

注意:要是用通配符的时候一定要用单引号
jerry@'%'

DCL:
GRANT pri1,pri2,...ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' [ IDENTIFIED BY 'PASSWORD' ];
REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';

查看用户的授权:
SHOW GRANTs FOR 'USERNAME'@'HOST';
ALL PRIVILEGES;

example:
1:CREATE USER 'jerry'@'%' IDENTIFIED BY 'jerry';
2:SHOW GRANTS FOR 'jerry'@'%';

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容