客户端软件
mysql自带 python模块 2.数据库的分类: 以上都是一个软件,都有两个主要功能: a.将数据保存到文件或者内存, b.接受 命令,对文件进行操作, 注意:都不需要自己创建文件和文件夹,都是通过命令来进行文件操作,统称为数据桔管理系统(DBMS) 3.认识sql语言: sql (structured query language) 结构化查询语言 sql 主要用于存取数据,查询数据,更新数据和管理关系数据库系统, sql 分为3类: DDL 语句 数据库定义语言: 命令有,create,drop,alter DML 语句 数据库的操作语言: 插入数据instert ,删除数据 delect, 更新数据update ,查询数据select DCL 语句 数据库控制语言: 控制用户访问的权限 grant,,revoke 5.数据库名字的命名规则: 区分大小写, 可以有字母,数字,下划线 ,@, #, $ 组成 名字须唯一 不能使用关键字 ,如create,select 不能单独使用数字 最长128位字符 数据库 database 文件夹 tables; 文件 table; 6.数据库的操作 ` 1.查看数据库 show databases; 查看该库的所有数据库 mysql 存放用户权限相关的数据 use mysql 进入mysql数据库>select user from user;查看登录到mysqlde的用户, 创建用户: create user ‘alex‘@‘*‘(ip) identified by ‘123‘ ‘用户名‘ ip地址 密码 授权: grant all privileges on db1.t1 to ‘alex‘@‘%‘; all privileges 表示所有权限,包含select(查询),insert(插入),update(更新), on db1t.t1 表示对文件夹下的t1文件有权限
test 用于测试数据 information_schema - mysql 本身架构相关数据 show create database db1 #查看数据库创建的方式 2.进入数据库 use 数据库名 --进入后无法退回,通过use进行切换 show tables 显示当前库中所有的表 select database();查看当前数据库 3.删除数据库 drop database 数据库名字; 4.修改数据库 alter database db1 charset utf8; 2.创建数据库 create database 数据库名 default charset utf8 7.用户管理 创建用户 create user ‘用户名‘@‘ip地址‘ identified by ‘密码‘; 删除用户 drop user ‘用户名‘@‘IP这地址‘; 修改用户 rename user ‘用户名‘@‘IP地址‘; to ‘新用户‘@‘ ip‘地址; 修改密码 set password for ‘用户名‘@‘ip地址‘ = password(‘新密码‘) 注意: 用户权限相关数据保存在MySQL数据库的user表中,所以也可以直接对其操作(不建议) 8.表的操作 1.创建表 create table 表名( 字段 类型[约束条件], 字段 类型)[character set xxx]; 例子: create table t1(id int ,name char(10)) default charset=utf8;
约束条件: primary key (非空且唯一); 一个表中只有一个主键, 约束(不能重复不能为空);加速查找 unique 唯一约束 not null 非空约束 engine=innodb #防止双方数据出现错误,可以实现数据回滚, 支持事务,原子性操作 myisam 不支持数据回滚
列子: create table t3(id int auto_increment,name char(10)) engine=innodb default charset=utf8; auto_increment 自增 注意: auto_increment 和primary key一起用,否则报错 一张表中,只能有一个auto_increment和primary key
创建表的标准格式: create table t1(id int not null auto_increment primary key,name char(10))engine=innodb default charset=utf8; 2.查看表信息 desc 表名 ,查看表结构,包含每个字段的信息, show columns from 表名 ,查看表结构 show tables ,查看库中所有的表 select * from 表名;,查看表里的所有列, select name,id from 表名;,查看name列,id列, show create table 表名; 里面包含了表创建时的各种信息,包含编码格式6 show create table 表名 \G; 竖着看,更方便
3.修改表结构 3.1 增加列(字段) alter table 表名 add 列名 类型 [约束性条件] [first | after 字段名]; 3.2 修改列(类型) alter table 表名 modify 列名 类型 [约束性条件] 3.3 修改列名 alter table 表名 change 列名 新列名 类型 3.4 删除一列 alter table 表名 drop 列名; 3.5 修改表名 rename table 表名 to 新表名; 3.6 修改表的所有字符集 alter table 表名 character set utf8; 3.7 插入数据 insert into t1(id,name) values(1,‘egon‘);t1是表名 3.8创建文件
4.删除表 drop table t3; 5.清空表,
delete from t3;当再次插入数据是,会从上次的id号继续,表的字段(列名)都还存在 truncate table t3; 删除表,表和记录都删除,直接从id 是1的开始删除,比delete快
9.数据类型: 9.1数字: tinyint 1.int 2.bigint 3.float,都是不精准的数据类型,越长越不精准 4.double,都是不精准的数据类型,越长越不精准 5.decimal 是最精准的数据类型,按字符串类型存的,但还是小数
num decimal(10,5)decimal 有2个参数,第一位是数据的总位数,后面参数代表小数点后的位数 9.2字符串: 1.char(10): 速度快,定义了10位个字符,不够空格填充,最多255个字符 2. varchar(10) :节省空间,定义10位个字符,没有写够,有多少,算多少,省内存,最多255个字符 3.enum(‘x‘,‘xl‘,‘xxl‘);表示只能从后面的数据里取,选项固定,不经常修改的, create table shirts( name varchar(40), size enum(‘x_small‘,‘small‘,large‘,‘x-large‘) ); insert into shirts(name,size) values(‘aa‘,‘large‘) 4.set(‘a‘,‘b‘.‘c‘)表示可以插入后面数据的任意组合 create table myset( name varchar(40), col set(‘a‘,‘b‘,‘c‘)); insert into myset(name ,col) values(‘xxxx‘,‘a,b‘) insert into myset(name,col) values(‘xxxx‘,‘b,c‘)
10.操作文件中的内容 插入数据: insert into t1(id,name) values(1,‘alex‘); 删除数据; delete from t1 where id<6 #where 后面跟条件,指定删除 修改: update t1 set age=18; update t1 set age=18 where age=17; 修改age=17 的数据
11.创建表 create table t1(id int primary key auto_increment , name varchar(20),not null, age int, salary float(10,2))engine=innodb default charset utf8; # where 条件 < ,>,>=,<=,<>,!= between 80 and 100 in(10,20,30) like ‘yuan%‘ 多个条件 可以使用逻辑运算符 and or not 排序 order by ASC 升序 默认 /Desc 降序 位于select末尾 group by 列名 ,可以跟having,进行筛选 11,主键, 保证数据的唯一性 12.外键,foreign key 一张表中的数据受限于另外一张表,2张关联, 2t1表中的主键(id) foreign key t2(某列名)的 constraint 约束 fk_1(名字) foreign key
MySQL总结
标签:表名 bsp insert rac 选项 获取 文件中 where sel