您的位置:首页 > 数据库 > MySQL

二 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]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: