二 MySQL初步,数据类型及SQL语句
2015-06-09 18:06
477 查看
DBMS的功能:
数据管理独立性;
有效地完成数据存取
数据完整性和安全性
数据集中管理
并发存储与故障恢复
减少应用程序开发周期
MySQL:
-h 127.0.0.1 localhost 客户端和服务端在同一台机器,连接方式:
linux: socket 套接字文件 本机
WINDOWS:memory 共享内存
mysql用户名中定义了该用户可以从哪里登录MYSQL服务器
Mysql客户端:
交互式模式
批处理模式 执行MYSQL脚本
交互式模式中的命令类别:
客户端命令 客户端命令不需要以分号结尾
mysql常用客户端命令如下:
如果想获取客户端命令的帮助信息则:mysql> help
服务器端命令 必须使用语句结束符,默认为分号“;”
常用服务器端命令:
MySQL默认的三个数据库:
information_schema 把mysql运行过程中产生的数据保存在内存中的数据库。(保证兼容)
mysql 存放数据库元数据
test 测试时使用
关系型数据库对象:
库
表
索引
视图
约束
存储过程
存储函数
触发器
游标
用户
权限
事物
表:
行:row
列: field,column
表:实体
字段名称:数据类型,类型修饰符(限制)
字符 CHAR(n) VARCHAR(n)默认不区分大小写 最多256个字符
BINARY(n) VARBINARY(n)区分大小写 65553
TEXT(n)
BLOB(n)
表示众多字符的字符类型:text,blob这两种是表示众多字符型,text不区分大小写,blob区分大小写。这两种类型字符还有相应的变体
text:tinytext,text,mediumtext,longtext 存储的内容大小依次增大blob:tinyblob,blob,mediumblob,longblob 存储的内容大小依次增大这种类型的实际数据不是存放在表中的,而是存放在数据库外围的,表中只是存放了指向相应对象的指针。
常用修饰符:not null,default '默认值 ' 数值 修饰符:unsigned (无符号)
精确数值
整型 TINYINT 1个字节 SMALLINT INT BIGINT
十进制 DECIMAL
近似数值
浮点型
FLOAT
DOUBLE
日期
DATE
TIME
DATETIME
STAMP
布尔
mysql命令不区分大小写,但一般大写
DDL:数据定义语言(结构)
CREATE #在数据库中创建对象
ALTER #修改数据结构
DROP #删除对象
RENAME #重命名对象
DML:数据操作的语言 (内容)
INSERT #向一个表格中插入数据
UPDATE #更新一个表格中的已有数据
DELETE #删除表格中的数据
DCL:数据控制语言(权限)
GRANT #赋予一个用户对数据库或数据表格等制定权限
REVOKE #删除[b]一个用户对数据库或数据表格等制定权限[/b]
DDL:
创建数据库:
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
删除数据库:DROP DATABASE db_name;
创建表:
CREATE TABLE tb_name(列1 数据类型 修饰符,列2 数据类型 修饰符,..列n 数据类型 修饰符);
查看库中的表;SHOW TABLES FROM db_name;
查看表的结构:DESC tables_name;
删除表:DROP TABLE tables_name;
修改表:ALTER TABLE tb_name MODIFY #改变字段属性
CHANGE #改变字段名称
ADD
DROP
例:ALTER TABLE students ADD course VARCHAR(20) NOT NULL;
ALTER TABLE students CHANGE course Course VARCHAR(10) AFTER Name;
DML:
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE('STRING',NUM,...);
例:INSERT INTO students (Name,Age) VALUE ('LingHuChong',25),('Xiaolongnv',18);
例:INSERT INTO students VALUES ('Xiaoxiangzi', 'Hamagong', '55');
UPDATE tb_name SET column=value WHERE CONDITION;
例:UPDATE students SET Course='pixiejianfa';
UPDATE students SET Course='kuifabaodian' WHERE Name='Xiaoxiangzi';
#WHERE指定条件
选择:指定以某字段做为搜索码,与某值做逻辑比较,筛选符合条件的行。
投影:筛选符合条件的列
例: SELECT Name,Age From students WHERE Course='pixiejianf';
DELETE FROM tb_name WHERE CONDITION;#删除的是行
例:DELETE FROM students WHERE Course='kuifabaodi';
SELECT col1,col2 FROM tb_name WHERE CONDITION;
*:所有字段
WHERE:没有条件表示所有行
DCL:
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; 创建用户
DROP USER 'USERNAME'@'HOST'; 删除用户
HOST:
IP
HOSTNAME
NETWORK
通配符 _:匹配任意单个字符,172.16.0 _
%:匹配任意字符
例:jerry@'%'
GRANT pri1,pri2,... ON db_name.tb_name TO 'username'@'host' [IDENTIFIED BY 'PASSWORD'];
REVOKE [b] pri1,pri2,... ON db_name.tb_name TO 'username'@'host';[/b]
[b]SHOW GRANTS FOR 'username'@'host';查看用户权限[/b]
[b]GRANT ALL PRIVILEGES ON test.* TO 'xiejun'@'%'; 赋予用户xiejun从任何主机登录并对数据库test下所有表具有全部权限[/b]
数据管理独立性;
有效地完成数据存取
数据完整性和安全性
数据集中管理
并发存储与故障恢复
减少应用程序开发周期
MySQL:
-h 127.0.0.1 localhost 客户端和服务端在同一台机器,连接方式:
linux: socket 套接字文件 本机
WINDOWS:memory 共享内存
mysql用户名中定义了该用户可以从哪里登录MYSQL服务器
Mysql客户端:
交互式模式
批处理模式 执行MYSQL脚本
交互式模式中的命令类别:
客户端命令 客户端命令不需要以分号结尾
mysql常用客户端命令如下:
如果想获取客户端命令的帮助信息则:mysql> help
服务器端命令 必须使用语句结束符,默认为分号“;”
常用服务器端命令:
MySQL默认的三个数据库:
information_schema 把mysql运行过程中产生的数据保存在内存中的数据库。(保证兼容)
mysql 存放数据库元数据
test 测试时使用
关系型数据库对象:
库
表
索引
视图
约束
存储过程
存储函数
触发器
游标
用户
权限
事物
表:
行:row
列: field,column
表:实体
字段名称:数据类型,类型修饰符(限制)
字符 CHAR(n) VARCHAR(n)默认不区分大小写 最多256个字符
BINARY(n) VARBINARY(n)区分大小写 65553
TEXT(n)
BLOB(n)
表示众多字符的字符类型:text,blob这两种是表示众多字符型,text不区分大小写,blob区分大小写。这两种类型字符还有相应的变体
text:tinytext,text,mediumtext,longtext 存储的内容大小依次增大blob:tinyblob,blob,mediumblob,longblob 存储的内容大小依次增大这种类型的实际数据不是存放在表中的,而是存放在数据库外围的,表中只是存放了指向相应对象的指针。
常用修饰符:not null,default '默认值 ' 数值 修饰符:unsigned (无符号)
精确数值
整型 TINYINT 1个字节 SMALLINT INT BIGINT
十进制 DECIMAL
近似数值
浮点型
FLOAT
DOUBLE
日期
DATE
TIME
DATETIME
STAMP
布尔
mysql命令不区分大小写,但一般大写
DDL:数据定义语言(结构)
CREATE #在数据库中创建对象
ALTER #修改数据结构
DROP #删除对象
RENAME #重命名对象
DML:数据操作的语言 (内容)
INSERT #向一个表格中插入数据
UPDATE #更新一个表格中的已有数据
DELETE #删除表格中的数据
DCL:数据控制语言(权限)
GRANT #赋予一个用户对数据库或数据表格等制定权限
REVOKE #删除[b]一个用户对数据库或数据表格等制定权限[/b]
DDL:
创建数据库:
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
删除数据库:DROP DATABASE db_name;
创建表:
CREATE TABLE tb_name(列1 数据类型 修饰符,列2 数据类型 修饰符,..列n 数据类型 修饰符);
查看库中的表;SHOW TABLES FROM db_name;
查看表的结构:DESC tables_name;
删除表:DROP TABLE tables_name;
修改表:ALTER TABLE tb_name MODIFY #改变字段属性
CHANGE #改变字段名称
ADD
DROP
例:ALTER TABLE students ADD course VARCHAR(20) NOT NULL;
ALTER TABLE students CHANGE course Course VARCHAR(10) AFTER Name;
DML:
INSERT INTO tb_name (col1,col2,...) VALUES|VALUE('STRING',NUM,...);
例:INSERT INTO students (Name,Age) VALUE ('LingHuChong',25),('Xiaolongnv',18);
例:INSERT INTO students VALUES ('Xiaoxiangzi', 'Hamagong', '55');
UPDATE tb_name SET column=value WHERE CONDITION;
例:UPDATE students SET Course='pixiejianfa';
UPDATE students SET Course='kuifabaodian' WHERE Name='Xiaoxiangzi';
#WHERE指定条件
选择:指定以某字段做为搜索码,与某值做逻辑比较,筛选符合条件的行。
投影:筛选符合条件的列
例: SELECT Name,Age From students WHERE Course='pixiejianf';
DELETE FROM tb_name WHERE CONDITION;#删除的是行
例:DELETE FROM students WHERE Course='kuifabaodi';
SELECT col1,col2 FROM tb_name WHERE CONDITION;
*:所有字段
WHERE:没有条件表示所有行
DCL:
CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; 创建用户
DROP USER 'USERNAME'@'HOST'; 删除用户
HOST:
IP
HOSTNAME
NETWORK
通配符 _:匹配任意单个字符,172.16.0 _
%:匹配任意字符
例:jerry@'%'
GRANT pri1,pri2,... ON db_name.tb_name TO 'username'@'host' [IDENTIFIED BY 'PASSWORD'];
REVOKE [b] pri1,pri2,... ON db_name.tb_name TO 'username'@'host';[/b]
[b]SHOW GRANTS FOR 'username'@'host';查看用户权限[/b]
[b]GRANT ALL PRIVILEGES ON test.* TO 'xiejun'@'%'; 赋予用户xiejun从任何主机登录并对数据库test下所有表具有全部权限[/b]
相关文章推荐
- MySQL安全配置
- mysql Could not initialize master info structure 解决方法
- 自己实现mysql “函数索引”
- 安装使用percona版本mysql
- MySQL集群搭建步骤详解
- mysql find_in_set 用法
- MySql 统计排名
- MySQL存储过程详解 mysql 存储过程
- mysql实现master-slave的replication方案
- MySQL数据库SQL语句整合
- mysql_li async 一步查询
- navicat for mysql 10.1.7注册码
- 【mysql5.6】SQL基础
- mysql查询数据库含有的表数量
- Mysql编码问题
- mysql中You can't specify target table for update in FROM clause错误
- MySQL要导出成excel的方法
- MySQL的事件调度器
- Mysql相关
- MySQL事件 Events