数据库微课(持续更新)

第一节.数据库基本简介

什么是库?

库是用来存放n张表

什么是表?

在数据库中,表(table)类似于excel,可以用来存放数据

字段:类似于excel中的表头

数据类型:字符串(varchar),整数(tinyint,int,bigint),小数(float),日期(Data)

什么是数据?

文本,视频,图片,音频等



第二节.创建数据库

语法规则:

create database 库名;

删除指定数据库:drop database 库名

在创建库时,希望指定编码语法:create database 库名 character set 编码名



第三节.表的创建及其信息的录入

创建表语法:

CREATE TABLE 表名(

    字段1 数据类型,

    字段2 数据类型,

    ....

)

由于先有库(database),然后在库中创建表(table)

选中某一个数据库:use 库名;

创建例子:

CREATE TABLE Java成绩表(

  姓名 VARCHAR(20),

  班级 VARCHAR(20),

  Java成绩 FLOAT

)

删除指定表格语法:drop table 表名;

DROP TABLE java成绩表;

-往表中添加,删除,修改,查询数据(CRUD)-

往指定的表中添加数据:insert into 表名(字段1,字段2....)value(值1,值2....)

INSERT INTO java成绩表(姓名,班级,java成绩) VALUES('王二麻子','dt55',90.5);

INSERT INTO java成绩表(姓名) VALUES('王五');

注意:在插入时,可以省略表后面的字段名,但前提是values关键字后面的字段值数量必须与表字段数一致

INSERT INTO java成绩表 VALUES('王二麻子','dt55',90.5);

插入数据的第二种语法:insert into 表名 set 字段名1=字段值1,字段名2=字段值2...

如果“=”是放在set关键字后面,则是“赋值运算符”

INSERT INTO java成绩表 SET 姓名='李四';

同时插入多条数据

INSERT INTO java成绩表(姓名,班级,java成绩)

VALUES('abc','dt55',90.5),('def','dt55',90.5),('fgh','dt55',90.5);

删除数据语法:delete from 表名 where 条件

如果“=”放在where关键字后面,则是“关系运算符”

DELETE FROM java成绩表 WHERE 姓名='李四';


第四节.运算符

1.关系运算符

在mysql中常用的关系运算符有:=(等于),>(大于),>=(大于等于),<(小于),<=(小于等于),!=(不等于)

在mysql中关系运算符放在where之后

查询语法规则:select 字段1,字段2...from 表名 [where 条件]

例:

查询某一张表中的所有数据记录

SELECT 姓名,班级,java成绩 FROM java成绩表;

SELECT 姓名 FROM java成绩表;

SELECT * FROM java成绩表;

注:"*"代表查询某一张表的所有字段

查看java成绩表中java成绩>=60的所有学生的名字

SELECT 姓名 AS 名字 FROM java成绩表 WHERE java成绩>=60;

在查询数据的时候,可以通过as来给某一个字段取别名

SELECT 姓名 as username FROM java成绩表  WHERE java成绩>=60;

2.逻辑运算符

在mysql中常见的逻辑运算符有:与(and),或(or),非(not)

查询java成绩表中班级为b班且java成绩>70的学生姓名

SELECT 姓名 FROM java成绩表 WHERE 班级=’b’ java成绩>70;

作业:

1.创建一个库,在库下创建一张student表

(1)students表中的字段有:id(int类型),stuName(varchar类型),weight(体重,float类型)。

(2)往students表中同时插入3条数据。

(3)查询students表中的信息,为每个字段取一个别名:id(主键),stuName(学生名字),weight(体重),age(年龄)。

注:作业做完可以联系本作者,可免费检查正确与否。


第五节.对表数据的增(insert)

删(delete)改(update)查(select)


修改语法:update 表名 set 字段名1=值1,字段名2=值2....where 条件

例:

UPDATE students SET stuName='司马平波',age=18 WHERE id=1;

全改

UPDATE students SET age=25 WHERE 1=1;

删除students表中的所有数据(找不回来的,谨慎使用)

DELETE FROM students WHERE 1=1;

对sql语句进行分类

数据库查询语言:DQL(database QUERY Language)  对表的查询,select

数据库定义语言:DDL(database defined Language)  create

database,drop database,create table,drop

table等

数据库操作语言:DML(database manage Language)  update

insert,delete

DDL之操作数据库:

添加数据库:create database 库名【character set utf8/gbk】

删除指定数据库:drop database 库名

查询指定库的详细信息:

(1)SHOW CREATE DATABASE 库名;查看某一个数据库详细信息。

(2)SHOW DATABASES:查看mysql服务器下所有库。

(3)查看:

当前用户连接的是哪个数据库:select DATABASE();

(4)查看指定的数据库下有哪些表:show TABLES;

练习:创建一个库,在库下创建一张表(bank)

字段要求:

id(编号) int,bankNo(卡号) varchar,username() varchar,money(余额) float


第六节.DDL之对表的增删改查

创建一张表

CREATE TABLE 表名(字段名1 数据类型,..........);

删除表:drop table 表名;

查询:

(1),查询某一张表的结构:

desc 表名

例:

DESC bank;

(2),打印某一张表sql创建信息:show CREATE TABLE 表名;

例:

SHOW CREATE TABLE bank

修改表:

(1),对已经存的表进行重命名:rename TABLE 旧表名 TO 新表名;

例:

RENAME TABLE yinghang TO bank;

SELECT * FROM yinghang;

(2),往已经存在的表中添加字段信息:alter TABLE 表名 ADD 字段名 数据类型;

例:

ALTER TABLE bank ADD gender VARCHAR(2);

(3),删除某一张表中的字段:

alter TABLE 表名 DROP 被删除的字段名;

例:

ALTER TABLE bank DROP gender;

(4),对某一字段进行重命名:

alter TABLE 表名 CHANGE 旧字段名 新字段名 新字段名数据类型

例:

ALTER TABLE bank CHANGE aaa username VARCHAR(20);

(5),修改某一个字段数据类型长度:ALTER TABLE bank CHANGE bankNo

bankNo VARCHAR(25);

往bank表中添加一个字段birthday

ALTER TABLE bank ADD birthday DATE;

date类型只有年月日

UPDATE bank SET birthday=

'2000-2-28'WHERE id=1;

ALTER TABLE bank CHANGE birthday

birthday DATETIME;

datetime:年月日时分秒


第七节.对某一个数据库的备份与还原

第一种:

通过命令mysqldump -uroot -p密码

需要备份的数据库名>c:\备份后的sql脚本名;

例:

cmd--->mysqldump -uroot -proot dt55_account>c:\dt55_account_back.sql

还原备份的文件数据:

首先进入到mysql环境--->创建一个库---->在库下还原数据

------>source 备份数据库的脚本

source c:\dt55_account_back.sql

第二种通过图形化界面工具:选中需要备份的数据库---->右键--->备份/导出----转储到sql



训练

创建出版社信息表

图片发自简书App


补充内容:

数据类型的属性

mysql中常见的数据类型:varchar(n),float,int(n),bigint(n),date,datetime,text

默认值:default '默认值'

非空:not null

自动增长:auto_increment,尽量作用在int类型的字段上

主键:primary key,不能够重复,一张表中只有一个字段可以作为主键

唯一键:unique

两种删除方式的区别:

DELETE FROM students WHERE 1=1;

适用于只删除单条数据,删除数据后,自增列不会从1开始

TRUNCATE TABLE students;

删除整个表的数据,如果字段是自增的,则重新从1开始

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