学习python和数据分析推荐地方: www.lynda.com获取lynda官网会员的方式:http://item.taobao.com/item.htm?id=557746408785
数据库用户名: root
密码: mysql
# """""" -- // /* */
char(5) 长度固定为5的字符串 ab --> "ab "
varchar(5) abc --> "abc" 不能够超出长度
年龄 如果使用int 在一个别墅里面装了一颗芝麻
-- 数据库的操作
-- 链接数据库
mysql -uroot -pmysql
-- 退出数据库
exit quit ctr + d
-- 查看创建数据库
show databases;
-- 查看当前使用的数据库
select database();
-- 使用数据库 切换
use python_info;
-- sql语句最后需要有分号;结尾
-- 显示数据库版本
select version();
-- 显示时间
select now();
-- 创建数据库 create
create database demo;
-- 指定字符集
create database demo charset=utf8;
-- 查看数据库的创建语句
show create database demo;
-- 删除数据库
drop database demo;
-- 数据表的操作
-- 查看当前数据库中所有表
show tables;
-- 创建表
-- auto_increment表示自动增长
-- 创建一个学生的数据表(id、name、age、high、gender、cls_id)
-- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
-- 字段名 + 类型 + 约束(不分先后顺序)
-- unsigned不能够为负数
-- facebook 56个性别
-- enum 表示枚举
-- 班级id 在班级表中设置的是 int unsigned类型 学生表中需要引用班级的编号 需要保证类型是一致的
create table students(
id int unsigned primary key auto_increment not null,
name varchar(10) not null,
age tinyint unsigned default 0,
high decimal(5,2) default 0,
gender enum("男", "女", "中性", "保密"),
cls_id int unsigned default 0
);
-- 创建students表
-- 查看表的创建语句
show create table classes;
engine(引擎) = innodb (支持外键并且还是事务) 转账 a - 500-> b 500元 需要使用事务 提供了一种可以撤销的机制
MyISAM 全文检索引擎 查询速度 更新非常慢 不支持 事务 和外键
-- 查看表结构
desc classes;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(15) | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
-- 修改表结构 alter
-- 修改表-添加字段
-- alter table 表名 add 列名 类型/约束;
-- 生日信息
alter table students add birthday datetime;
-- 修改表-修改字段:不重命名版
-- alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;
-- 修改表-修改字段:重命名版
-- alter table 表名 change 原列名 新列名 类型及约束;
alter table students change birthday birth date;
-- 删除对应的字段
alter table students drop birth;
-- 删除表
drop table students;
-- 数据增删改查(curd)
-- 增加 insert
-- 全列插入 值和表的字段的顺序一一对应
-- 可有 可无
-- insert [into] 表名 values(...)
-- [] 在sql语法中表示可有可无和
-- 和表的创建的字段的顺序 一一对应 一个都不能够少
-- 主键字段需要通过一些特殊的值来占位(0, NULL, Default)
-- 枚举: 枚举值从1开始(1,2,3,4) 和原始值(男)
+--------+-------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------------------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| age | tinyint(3) unsigned | YES | | 0 | |
| high | decimal(5,2) | YES | | 0.00 | |
| gender | enum('男','女','中性','保密') | YES | | NULL | |
| cls_id | int(10) unsigned | YES | | 0 | |
+--------+-------------------------------------+------+-----+---------+----------------+
insert into students values (0,"小乔",40,180,1,1);
insert into students values (NULL,"曹操",40,180,1,2);
insert into students values (NULL,"刘备",35,180,"男",2);
# 错误insert into students values (NULL,"张飞",35,180,"不知道",2);
# 错误insert into students values (NULL,"张飞",35,180, 6,2);
-- 指定列插入
-- insert into 表名(列1,...) values(值1,...)
-- values 也可以是 value
insert into students (name, gender, cls_id) values ("周瑜", 1, 1);
-- 多行插入 批量插入
-- insert into 表名(列1,...) values (值1,...),(值1,...),...
insert into students (name, gender, cls_id) values ("刘备", 1, 2), ("诸葛亮", 1, 2),("张飞", 1, 2);
-- 修改
-- where 可以不加 但是此时是全表更新
-- update 表名 set 列1=值1,列2=值2... where 条件
-- 搜易贷 P2P 500w 送加息券
-- 易租宝跑路
update students set gender = 1;
update students set gender = 1 where id = 4;
-- 删除
python : if id == 4 sql 表示是否相等 通过一个 =
-- 物理删除
-- DELETE FROM tbname [where 条件判断]
delete from students; -- 整表删除 mysql 从删表到跑路 去哪儿数据库被恶意删除 前dba(数据库管理员)
delete from students where id = 4;
-- 诺基亚 下架 个人中心--> 我的订单 --> 订单列表-->诺基亚手机的订单--> 订单详情 -> 商品详情
-- 逻辑删除 给每一条数据添加一个标记, 标记是否被删除 0 表示没有被删除 1 表示被删除
1. 修改表结构 添加一个标记 字段
alter table students add is_delete bit default 0;
2. 更新需要逻辑删除的数据
-- 查询有哪些学生没有被删除
-- 查询基本使用
-- 查询所有列
-- select * from 表名;
-- 查询classes 表中所有的数据
select * from classes;
-- 指定字段查询
-- sql 中表示相等 使用 = 而不是 ==
-- 指定条件查询
-- 查询指定列
-- 字段的顺序
-- 可以使用as为列或表指定别名