MYSQL
一、概念:
数据: data
数据库: DB
数据库管理系统:DBMS
数据库系统:DBS
MySQL:数据库
mysql:客户端命令(用来连接服务或发送sql指令)
SQL:结构化查询语言 ,其中MySQL支持这个。
SQL语言分为4个部分:DDL、DML、DQL、DCL
二、连接数据库:
mysql -h 主机名 -u 用户名 -p密码 库名
C:\>mysql --采用匿名账号和密码登陆本机服务
C:\>mysql -h localhost -u root -proot --采用root账号和root密码登陆本机服务
C:\>mysql -u root -p --推荐方式默认登陆本机
Enter password: ****
C:\>mysql -u root -p 数据库 --直接进入lamp61数据库的方式登陆
三、授权:
--实例:创建zhangsan账号,密码123,授权123库下所有表的增/删/改/查数据,来源地不限
mysql> grant select,insert,update,delete on 123.* to zhangsan@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
四、SQL的基本操作
1. 登录 mysql -h localhost -u root -p
2. 设置编码
此时输入 set character_set_client=gbk;告诉我客户端这边的文字编码
再输入set character_set_results=gbk; 告诉mysql希望返回的结果集编码;
3. 创建一个user数据库
create database user;
4. 查看当前用户的所有数据库
show databases;
5. 尝试删除aaa数据库
drop database if exists aaa;
6. 查看aaa数据库的建库语句
show create database aaa\G
7. 选择进入aaa数据库
use aaa;
8. 创建表
create table tt(
-> name varchar(16), --姓名
-> age int, --年龄
-> email varchar(50)-- 邮箱
-> );
9. 查看tt表结构
desc tt
10. 查看数据库中的所有表
show tables;
11. 查看tt表的建表语句
show create table tt\G
12. 删除表
drop table tt;
13. 添加
insertintott(name,age,email) values('zhangsan',20,'zhangsan@163.com');
inserintott values
-> ('aa',21,'aa@166.com'),
-> ('bb',24,'bb@166.com'),
-> ('cc',26,'cc@166.com');
为stu表添加一个email字段并放置到name后,若在第一使用first
alter table stu add email varchar(32) not null after name;
14. 查看
select * from tt;
15. 修改
pdate tt set name='zhangsan' where id='1';
16. 删除
delete from tt where id='3';
将stu表中的email字段删除
alter table stu drop email;
17. 为stu表的age字段添加普通索引(索引名为in_age)
alter table stu add index in_age(age);
18. 删除索引
alter table stu drop index in_age;
19. 导出aa数据库中的stu表信息
D:\>mysqldump -u root -p aa stu > aasql 不可有;
20. 导入数据
D:\>mysql -u root -p aa mysql>\h -- 快捷帮助 mysql>\c -- 取消命令输入 mysql>\s -- 查看当前数据库的状态 mysql>\q -- 退出mysql命令行 五、 MySQL数据库的数据类型: MySQL的数据类型分为四大类:数值类型、字串类型、日期类型、NULL。 5.1 数值类型: tinyint(1字节) smallint(2字节) mediumint(3字节) int(4字节) bigint(8字节) float(4字节) float(6,2) double(8字节) decimal(自定义)字串形数值 5.2 字串类型 普通字串 char 定长字串 char(8) varchar 可变字串 varchar(8) 二进制类型 tinyblob blob mediumblob longblob 文本类型 tinytext text 常用于 mediumtext longtext enum枚举 set集合 5.3 时间和日期类型: date 年月日 time 时分秒 datatime 年月日时分秒 timestamp 时间戳 year 年 5.4 NULL值 NULL意味着“没有值”或“未知值” 可以测试某个值是否为NULL 不能对NULL值进行算术计算 对NULL值进行算术运算,其结果还是NULL 0或NULL都意味着假,其余值都意味着真 MySQL的运算符: 算术运算符:+ - * / % 比较运算符:= > < >= <= <> != 数据库特有的比较:in,not in, is null,is not null,like, between and 逻辑运算符:and or not 六、 表的字段约束: unsigned 无符号(正数) zerofill 前导零填充 auto_increment 自增 default 默认值 not null 非空 PRIMARY KEY 主键 (非null并不重复) unique唯一性 (可以为null但不重复) index 常规索引 七: 建表语句格式: create table 表名( 字段名 类型 [字段约束], 字段名 类型 [字段约束], 字段名 类型 [字段约束], ... );
- 上一篇:PHP --文件上传和下载