2019-05-14 数据库

1 DDL创建数据库

1 直接创建数据库

create databases 数据库名;

2 判断是否存在并创建数据库

create databases if not exists

3.创建数据库并指定字符集(编码表)

create database 数据库名 character set 字符集;

4. 具体操作:

直接创建建数据库db1;

create database db1;

判断是否存在并创建数据库db2;

create database if not exists db2;

创建数据库db3并指定字符集为gbk

create database db3 character set gbk;

查看数据库

1.查看所有数据库

show databases;

1.查看某个数据库的定义信息

show create database 数据库名;

小结

1.创建数据库语法:create database 数据库名;

2.查看所有数据库: show databases;

DDL修改和删除数据库

修改数据库字符集

alter database 数据库 default character set 新的字符集;

具体操作:

将db3的数据库字符集改成utf8

alter database db3 default character set utf8;

注意:如果修改数据库指定的编码表是utf8,记住不能写utf-8。utf-8是错误的。

删除数据库

dropdatabase 数据库名;

具体操作:
 drop  database db2;

小结

1.修改数据库字符集格式?alter database 数据库 character 新的字符集;

2.删除数据库格式? drop database数据库名;

DDL 使用数据库

1.查看正在使用的数据库

select--查询

select database();

2.使用、切换数据库

use 数据库名;

查看正在使用的数据库

select database();

使用db1数据库

use db1;

小结

DDL语句操作                   关键字

创建                                   create database 数据库名;

修改                                     alter database character set 字符集

查看                                     show databases;

删除                                    drop database 数据库名;

DDL 创建表

create table 表名(字段名1 字段类型1,字段名2 字段类型2....);

建议写成如下格式:

javase

public class Student{

int age;

}

create table 表名(

字段名1 字段类型1,

字段名2 字段类型2

);

MySQL数据类型

类型 int 整型 double 浮点型 varchar 字符串型 data 日期型 ,格式为 yyyy-MM-dd,只有年月日,没有时分秒;

创建Student表包含id,name,birthday字段

create table student(

id int ,

name varchar(20),

birthday date

);

小结

1.创建表语句:create table 表名(字段名 类型,字段名,字段类型....);

2.常用数据类型: int ,double,varchar, date

DDL 查看表

1.查看某个数据库中的所有表

show tables;

2.查看表结构

desc 表名;

3.查看创建表的SQL语句

show create table 表名;

具体操作:

查看数据库中的所有表

show tables;

查看student 表结构

desc student;

查看student的创建表SQL语句

show create table student;

小结

1.查看某个数据库中的所有表:show tables;

2.查看表结构 :desc表名;

3.查看创建表的SQL语句: show create table 表名;

DDL删除

快速创建一个表结构相同的表

create table 表名 like 其他表;

具体操作:

创建s1表,s1表结构和student表结构相同

create table s1 like student;

删除表

1.直接删除表

drop table 表名;

2.判断表是否存在并删除表

drop table if exists 表名

具体操作:

直接删除s1表

drop table s1;

判断是否存在并删除s1表

drop table if exists s1;

小结

1.快速创建一个表结构相同的表: create table 表名 like 其他表;

2.删除表语法:drop table 表名;

DDL表结构修改(了解)

1.添加表列

alter table 表名 add 字段名 类型;

具体操作:

为学生添加一个新的字段remark,类型为varchar(20)

alter table student add remark varchar(20);

2.修改列类型

alter table 表名 modify 字段名 行的类型;

将student表中的remark字段改成varchar(100)

alter table student modify remark varchar(100);

3.修改列名

alter table 表名 change 旧字段名 新字段名 类型;

将student表中的remark字段改成intro,类型varchar(30)

alter table student change remak intro varchar(30);

4.删除列

alter table 表名 drop 字段名;

删除student表中的字段intro

alter table student drop intro;

5.修改表名

rename table 表名 to 新表名;

将 student 改成 student2

rename table student to student2;

6.修改字符集

alter table 表名 character set 字符集;

将student2表的编码修改成gbk

alter table student2 character set gbk;

小结

1.所有修改表前面的语法都是相同的?alter table 表名

2.添加一列: add 字段名 类型

3.修改类型: modify 字段名 新的类型

4.修改字段名和类型:change旧字段名 新字段名 类型

5.删除一列: drop 字段名

DML插入记录(重点)

创建student 表包含id,name,age,birthday,sex,address字段。

create table student(

id int,

name varchar(20),

age int,

birthday date,

sex char(2),

address varchar(50)

);

插入全部字段

insert into 表名(字段名1,字段名2...)values(字段值1,字段值2...)

不写字段名

insert into 表名values (字段值1,字段值2...)

插入部分数据

insert into表名(字段名1,字段名2...)values(字段值1,字段值2...);

没有添加数据的字段会使用NULL

1.关键字说明

insert into 表名-表示往哪张表中添加数据

(字段名1,字段名2,...)--要给哪些字段设置值

values(值1,值2,...)--设置具体的值

注意:使用  select* from 表名--查看该表的所有信息。

2.具体操作:

插入部分数据,往学生表中添加id,name,age,sex数据

insert into student(id,name,age,sex)values(1,'张三‘,20,‘男’);

向表中插入所有字段

insert into student(id,name,age,sex,address)values(2,'李四',23,'女','广州');

不写字段名

insert into student values(3,'王五',18,'男','北京');

DML更新记录

1.不带条件修改数据

update 表名 set 字段名=新的值;

2.带条件修改数据

update 表名 set 字段名=新的值 where 条件

3.关键字说明

update:表示修改记录

set:要改哪个字段

4.具体操作:

不带条件修改数据,将所有的性别改成女

update student set sex='女';

带条件修改数据,将id号为2的学生性别改成男

update student set sex=‘男’where id=2;

一次性修改多个列,把 id为3的学生,年龄改成26岁,adress改成北京

update student set age=26,address='北京'where id=3;

小结

1.不带条件的更新数据库记录,update table set 字段名=新的值;

2.带条件:update table set 字段名=新的值 where 条件;

DML删除表记录

1.不带条件删除数据

delete -- 删除记录

delete from 表名;

2.带条件删除数据

delete from 表名 where 条件;

3.truncate删除表记录

truncate table 表名;

truncate和delete的区别:

delete是将表中的数据一条一条删除

truncate是将整个表摧毁,重新创建一个新的表,新的表结构和原来表结构一模一样

小结

1.指定条件删除:delete from 表名where 条件;

2.没有条件删除所有的记录: delete from 表名;

3,删除表结构再创建表:truncate table表名;

DQL没有条件的简单查询

查询表中所有列数据

1.写出查询每列的名称

select --表示查询

select 字段名1,字段名2,...from 表名;

具体操作:

select id,name,age,sex,address from student;

1.使用*表示所有的列

select *from 表名;

具体操作:

select *from student;

查询表中指定列的数据

select 字段名1,字段名 2 from表名;

查询student表中的name,age from student ;

select name ,age from student;

别名查询

查询时给列、表指定别名需要使用AS关键字

使用别名的好处是方便观看和处理查询到的数据SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名;SELECT 字段名1 AS 别名, 字段名2 AS 别名... FROM 表名 AS 表别名;注意:

查询给表取别名目前还看不到效果,需要到多表查询的时候才能体现出好处AS关键字可以省略

具体操作:

查询sudent表中name 和 age 列,name列的别名为”姓名”,age列的别名为”年龄”

SELECT NAME AS 姓名, age AS 年龄 FROM student;

清除重复值

1.查询指定列并且结果不出现重复数据

SELECT DISTINCT 字段名 FROM 表名;

2.具体操作:

查询address列并且结果不出现重复的address

select distinct address 城市 from student;

查询math + english的和

SELECT math + english FROM student;

查询math + english的和使用别名”总成绩”

SELECTmath + english 总成绩FROMstudent;

小结

1.简单查询格式: select 字段名,字段名...from 表名;

2,定义别名:select 字段名 as 别名 from 表名;

3.去除重复行: select distinct 字段名 from 表名;

4.数值列,可以进行计算,不会影响表中数据

蠕虫复制

insert into 表名1select*from表名2;

创建student2表,student2结构和student表结构一样

create table student2  like student;

将 student表中的数据添加到student2表中

insert into student2 select *from student;

注意:如果只想复制student表中name,age字段数据到student2表中使用如下格式

insert into student2(name,age)select name,age from student;

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

推荐阅读更多精彩内容