Mysql基础部分,针对以后python使用

#redis 非关系型数据库
#mysql 关系型数据库 表与表之间有数据关系 Oracle Mysql SqlServer DB2
#多张表组合在一起就是数据库
#冗余 存储两倍数据 可以使系统速度更快 表的规范化程度越高,表与表之间的关系就越多
#冗余 缺点 数据量增加一倍,且修改时两个表有重复字段
#主键是唯一的,一个数据表中包含一个主键 唯一确定某一个是这个表的唯一的值
#外键 用于关联两个表
#复合键 一般用于索引 将多个列作为一个索引键,一般用于复合索引
#索引 使用索引可以快速访问数据表中的特定信息,索引对数据库一列或多列的值进行排序的一种结构
#这个就是索引!!hash 数据库对应 将数据转为hash 然后排个序 再二分法
#数据库的索引是B加树 二叉树的一种
#MD5是基于hash再封装
#参照完整性:参照完整性是要求关系中不允许引用不存在的实体
#与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性


#show databases;
#use mysql;
#show tables; 显示表
#desc 表名 显示表的结构 列名 数据的类型 长度
#enum 字段 Null是否为空(NO不能为空)
#Key PRI主键(primary key )
#Default默认值


#查看数据
#select * from 表名;
#select * from 表名\G 将其写为列!

#mysqladmin 创建密码 /etc/init.d/mysqld start 启动mysql
#ps -ef |grep mysqld | kill -9 进程号

#创建用户
#use mysql;
#select user User from user表名;
#insert into user表名 (host) ....

#授权
#grant select,insert,update,delete,create,drop on 表名.* to "用户'@'localhost" identified by "密码"
#grant all on 表名.* to '用户'@'%' identified by "密码";
#flush privileges;

#show grants for 用户; 显示用户权限对表名


#/etc/my.cnf linux Mysql配置文件

#管理Mysql的命令
#show columns from user; == desc 表名

#创建数据库名
#create database 数据库名 charset utf8; 创建数据库支持中文 ;

#show create database 数据库名; 查看其数据库属性

#删除数据库 (切记别随便删除数据库)drop database 数据库名

#Mysql支持多种类型 分为三类:数值,日期,字符串
#每个大类又分为多个小类

#创建表
#create table 表名(列名1 类型int,列名2 类型char);
#create tables student(stu_id INT NOTNULL AUTO_INCREMENT, name char(32) NOT NULL, primary key(stu_id))
#desc student

#添加数据
#insert into 表名 (列名1,列名2..) values(值1,值2..);
#insert into student (name,age) values("ljc", 23)

#查询数据
#select * from student;
#select name from student;

#where condition 范围
#select * from student where id > 3

#where 模糊查询 列表名 like "字符串"
#select * from student where re_data like "2016-07-%"

#and or not

# offset n 偏移量 查看从第几行开始 配合Limit使用
#select * from student limit 2 offset 1 去掉第一行查后两行

#limit n 查看数据行数 查看前两条

#修改(字段) update
#update 表名 set 列名="字符串" where id = 4; 一般用主键
#update student set name = 'ljc', age = 23 where id =4 ;

#批量修改 update
#update student set name ='ha' where id <3;

#删除
#delete from 表名 where 列表="字符串";
#delete from student where name = "ljc";

#排序
#ASC 升序(默认升序) DESC降序 order by 列表名 DESC 或者ASC
#select * from student order by 列表名 desc;
#select * from student order by 列表名; 降序

#Group by 语句
#select 列表 from 表名
#select name, count(*) from student group by name; 统计 然后分组 按名字分 出现多少次
#select name ,count(*) as stu_num from student group by name; 给count(*)起个别名
#统计
#select name , sum(age) from student group by name with rollup; #算总数
#select coalesce(name, "起名字") ,sum(age) from student group by name with rollup;

#修改表 alter add drop modify 修改数据类型 change

#alter table 表名 add 列名 属性
#alter table student add sex char(2)

#删除drop
#alter table 表名 drop 列名
#alter table student drop sex

#修改数据类型modify
#desc student
#alter table student modify sex 原本属性 改后属性;
#alter table student modify sex char(2) char(4)


#change 修改列表名加数据类型 alter table 表名 change 原列表名 新列表名 新属性;
##alter table student change sex gender char(32);


posted @ 2018-04-16 23:48  想翻身的猫  阅读(206)  评论(0编辑  收藏  举报