2018-06-25 数据库

mysql


显示当前所有的数据库

show databases

 支持模糊查询、_表示占位符,加反斜杠转义

show databases like "db%"; 

show databases like "db/_%";

显示当前所有的数据库

use dbName;

 显示当前数据库所有表、支持模糊查询

show tables like "t%"

描述表的结构

desc\describe tableName;

描述表的结构

show columns from t_user;

显示当前所在的数据库

select database();

返回当前时间

select now();

返回当前数据库的版本信息

select version();


创建数据库:

创建数据库:

create database dbName [[default] charset 'utf8']

删除数据库:

drop database dbName;

修改数据库:

alter database dbName default charset gbk;

查看数据库定义:

show create database dbName;


表的常见操作

表的创建:

create table tName(

field1 int primary key auto_increment,

gender varchar(20) not null

) default charset utf8 engine=innodb/mysiam

查询表创建的信息:

show create table tname[\G];

对表结构的修改:

修改表名:

rename table oldTableName to newTableName;

alter table tableName rename to new TableName;

修改表的属性(字符集|引擎……):

alter table tableName charset=gbk

alert table t_test charset='gbk';

修改表的字段:

alter table tName change/modify/drop/add field

增加一个新的字段:

alter table tName add newColumn condition 位置

alter table t_test add nickname varchar(50) not null unique

修改一个字段的名称

alter table tName change nickname test varchar(30) default 'liushuaige' first;

修改一个字段的类型

alter table tName modify test varchar(80) default 'hehe' after age;

删除一个字段

alter table t_test drop test;

CRUD(C:create 增加 R:retrieve 查询 U:update 修改 D:delete 删除):

insert into

tableName(field1,field2,……,fieldn)

values(val1,val2,……,valn);

update tableName set field1=newV[,……,fieldn=newV]

where condition;

delete from tableName where condition;

truncate [table] tableName; #慎用

select *[field1,field2,……,fieldn] from table [where condition]

10、单表的条件查询

关系运算符: > <  >= <=  =  != <>

逻辑运算符:and(并且) or(或者) not

空和非空的判断: is null is not null

between and  in  not in

排序:

order by field1 [asc|desc] [,field2 [asc|desc]]

分组:

group by field [having condition]

分页:

limit offset, pageSize;

11、编码问题

utf8

gbk

latin1

……

校对集:

_bin: binary 区分大小写

_cs: 区分大小写

_ci: 忽略大小写

=============================================================

今天目标:

分表:

多表关联查询:

外键:

视图:

索引:

面试题:

1、说说你所知道的mysql的数据库引擎有哪些?

2、innodb、myisam 两个引擎的区别?

=============================================================

在设计数据库时,一般而言要求遵循数据库三范式(3NF)

1、设计的字段具有原子性(字段不可分割)

2、每天记录具有唯一性  主键

3、外键

大量数据冗余

create TABLE emp (

id int PRIMARY KEY auto_increment,

name varchar(50) not null,

gender char(10) DEFAULT '男',

tel  varchar(20) DEFAULT '110',

address varchar(255),

qq varchar(30),

age int DEFAULT 18,

deptId int,

# 添加外键约束

constraint foreign key(deptid) references dept(id) on delete set NULL  on update

)

create table dept(

id int PRIMARY KEY auto_increment,

name varchar(50) not null UNIQUE,

describle text

)

# 多表管理查询

# 多表管理查询有五种连接方式

# 1、交叉查询

select *

from dept,emp

SELECT * from emp cross join dept;

# 笛卡尔积现象

# 内连接

SELECT *

FROM emp,dept

WHERE emp.deptid = dept.id

SELECT e.*,t.name as deptname, t.describle deptdesc from emp as e inner join dept t on (e.deptid = t.id)

# 外连接

# 外连接分为左外连接和右外连接

SELECT e.*,d.name deptname, d.describle deptdesc FROM emp e LEFT JOIN dept d on(e.deptid=d.id);

SELECT e.*,d.name deptname, d.describle deptdesc FROM emp e RIGHT OUTER JOIN dept d on(e.deptid=d.id);

# 自然连接 真正的开发中用不到

SELECT * from emp natural join dept;

# 自连接

# 查询用户id为1的部门名称

SELECT name

from dept

WHERE id = (SELECT deptId from emp where id=8);

SELECT d.name

from emp e ,dept d

WHERE e.deptid=d.id and e.id = 1

SELECT d.name

from emp e INNER JOIN dept d on(e.deptid=d.id)

where e.id = 1;

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('1', '张三', '男', '110', '郑州', '110', '18', '1');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('2', '李四', '女', '110', '郑州', '120', '18', '2');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('3', '王五', '男', '130', '杭州', '130', '20', '3');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('4', '赵六', '女', '140', '广州', '140', '23', '4');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('5', '钱七', '女', '15000', '兰州', '150', '33', '5');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('6', '王八', '女', '16', '徐州', '180', '38', '6');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('7', '老牟', '男', '110120', '兰州', '110', '33', '7');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('8', '老李', '男', '200000', '郑州', '205845', '38', '8');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('9', '老增', '女', '2356', '长沙', '256789', '29', '3');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('10', 'xx', '女', '123456', '郑州', '123456', '21', '2');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('11', '刘xxx', '男', '456123', '郑州', '78952', '23', '3');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('12', 'xxxx', '女', '12548', '郑州', '458123', '21', '4');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('13', 'xx', '女', '1254', '郑州', '25561', '25', '4');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('14', 'xx', '女', '125', '郑州', '1459', '25', '2');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('15', 'xxx', '女', '45612', '郑州', '75251', '29', '5');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('16', 'xx', '女', '110', '北京', '154', '27', '6');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('17', 'xxx', '女', '152', '铁岭', '1554', '21', '7');

INSERT INTO `db_py1805`.`emp` (`id`, `name`, `gender`, `tel`, `address`, `qq`, `age`, `deptId`) VALUES ('18', '佚名', '未知', '110', '东北', '255', '18', '100');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('1', '总经理班', '管人的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('2', '研发部', '开发软件的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('3', '销售部', '卖东西的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('4', '市场部', '调研的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('5', '人事部', '人力资源管理');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('6', '后勤部', '扫地的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('7', '财务部', '发钱的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('8', '保安部', '打人的');

INSERT INTO `db_py1805`.`dept` (`id`, `name`, `describle`) VALUES ('9', '公关部', '你懂得');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容

  • 数据库没有诀窍:唯有练习 命令 ===== Linux 前三周的课程: 1、两周的时间讲解前端部分(UI): HT...
    清清子衿木子水心阅读 366评论 0 0
  • -- 复制表(结构和数据) CREATE TABLE emp2 AS SELECT * FROM emp; SEL...
    辰321阅读 462评论 0 0
  • 今天晚上我忽然想到,明天星期四,我们明天有科学课,老师前一天晚说让我们准备好纸船和地球仪,我很久以前叠...
    祥颐阅读 688评论 0 0
  • 何夜无月何处无竹柏但少闲人如吾两人者耳 第二日 清晨起了个早,便和Miss.L一起在小南门的早市上兜了一圈,来来往...
    Maries阅读 253评论 2 1