初识mysql数据库

一、初识数据库

1、什么是数据库

数据库叫database ,简称DB,是长期存放在计算机内,有组织、可共享的大量数据的集合;数据库就是存放数据的仓库,专业的数据库系统具有较小的数据冗余度,较高的数据安全性,易扩展性。

数据库设计原则:

mysql主要优势:一个应用对应一个数据库

2、数据库分类

补充:ER关系图

补充:服务器

服务器是一台电脑,这台电脑安装了服务器软件,这些软件会监听不同的端口号,根据用户访问的端口号提供不同的服务

3、DBMS、DBS、DBA区别

DBMS是数据库管理系统,是一种系统软件,包括数据库和用于数据库访问管理的接口系统,通常将DBMS直接称为数据库,严格意义上说mysql属于DBMS

DBS是一个实际可运行的系统,由软件、数据库、数据库管理员组成

DBA数据库管理员

4、MySQL简介

概念

是现行的开源、免费的关系型数据库

### 特点

运行速度快

使用成本低

容易使用

可移植性强

适用更多用户

mysql语句分类

5、mysql的安装、卸载及启动mysql服务

安装

运行安装程序、在启动配置教程以前,一路下一步直到finish

第一次finish之后启动服务配置教程

第一个induce mysql bin dinctory to windows path

第二个端口号不要去修改,字符集要选择utf-8,默认端口号:3306

卸载

打开控制控制面板删除软件

删除mysql安装目录的所有文件

删除mysql数据存放的文件,C:\ProgramData\MySQL

启动mysql服务方式

任务管理器打开

命令行输入:service(查看本地服务)

dos窗口输命令:net start mysql

MysqlInsranceConfig:配置向导

programDate:数据文件的保存路径(默认是隐藏的,在C盘下)

mysql的安装目录下的my.ini文件:相应的一些配置,可配置编码格式等

mysql -uroot -paaaaa123 进入mysql

show databases显示所有的数据库

select version()显示mysql版本号

二、DDL语句创建数据库和数据表

1、连接数据库(在dos窗口下)

cmd——以管理员身份运行

启动mysql数据库服务:net start mysql

登录mysql:mysql -uroot -paaaaa123(或者:mysql -hlocalhost -uroot -paaaaa123)注意-p以后不能有空格

exit退出mysql

show databases;(显示数据库,一定要加分号)

use mysql

show tables(显示数据库中的表)

sql语句select * from user\G;显示user用户列表

修改user用户密码:update user set password=password'(1234' ) where user=‘root’;,flush privileges;刷新下

?寻求帮助

查看mysql所支持的引擎类型、表类型:SHOW ENGINES;

查看默认引擎:SHOW VARIABLES LIKE 'storage_engine';

显示变量:show variables like'auto%'

2、数据库操作

创建数据库

CREATE DATABASE [IF NOT EXISTS ]数据库名;

删除数据库

DROP DATABASE [IF EXISTS] 数据库名;

修改数据库字符集

alter database 数据库名 character set 字符集

查看数据库

查看所有数据库:show databases

查看数据库定义:show create databse 数据库名

查看当前正在使用的数据库:select database()

选中数据库

use 数据库名

3、表结构操作

创建表

create table 表名(

列名 列的类型 列的约束,

列名 列的类型 列的约束

)【表类型】【表字符集】【表注释】

代码示例:

(

3INT(4)NOTNULLAUTO_INCREMENTCOMMENT'主键、学号',

4VARCHAR(20)COLLATEutf8_estonian_ciNOTNULLDEFAULT'123456'COMMENT'密码',

5VARCHAR(30)COLLATEutf8_estonian_ciNOTNULLDEFAULT'匿名'COMMENT'学生姓名',

6VARCHAR(2)COLLATEutf8_estonian_ciNOTNULLDEFAULT'男'COMMENT'性别',

7DATETIMEDEFAULTNULL,

8VARCHAR(20)COLLATEutf8_estonian_ciDEFAULTNULL,

9PRIMARYKEY()

10)ENGINE=INNODBAUTO_INCREMENT=4DEFAULTCHARSET=utf8COLLATE=utf8_estonian_ci

注释

列的约束

primary key 主键约束

unique : 唯一约束

not null 非空约束

注意事项

除了最后一个列不用逗号隔开,每一列都要逗号隔开

表名如果变蓝了表明和数据库有冲突,这时候要加上反引号·

字符串类型的要用单引号引起来

有多个属性的时候用空格隔开就好

commend后面加单引号注释内容

代表整个注释

设置严格检查模式

列类型

数值型

tinyint:非常小的数据

int:标准整数

double:双精度浮点数

decimal【(M,D)】:字符串形式浮点数,M表示总位数,D表示保留小数位数

字符串型

char:固定长度

vachar:可变长度,括号内代表的是字符的个数

text:文本串

日期和时间

datetime:日期和时间,默认是null

timestamp:常用于显示当前时间,默认是当前日期和时间

Null值

理解为没有值或未知值

不要用null进行算术运算

表的类型

常见的MyISAM,InnoDB

数据表的存储位置

都位于C:\ProgramData\MySQL目录下

数据字段属性

unsigned:无符号,声明该数据不允许为负数

zerofill:0填充,不足位数用0填充,如int(3)5则为005

auto_increment:自动增长,常用于设置主键,且为整数,定义起始值和步长:

定义起始值:auto_increment=100(建表时在右括号右边写,影响的是当前表,对整个数据库的其他表没有影响

定义自增步长:set auto_increment_ncrement=5,会对所有数据库受影响

null和not null :默认为null,若设置为not null则必须有值

default:设置默认值

删除表

drop table 表名

修改表

查看表

4、保存sql文件以及打开sql文件

保存Ctrl+s

新建查询编辑器——在同一标签中打开文件(在不同标签中打开)

对于图像声音视频用text、blob存储数据

一般没有必要直接存储图像,而存储的是路径用字符串

三、DML语句对表中数据CRUD操作

1、主键&外键

主键咋一个表里面可有也可以没有,

一个表里面的外键既可以有一个也可以有多个,

建立主外键关系的有主键的表为主表,有外键的表成为子表或者从表

能够保证数据的完整性和 正确性

对于有主外键关系的表,数据插入操作要有一定顺序,先放主键数据,再放外键数据 ,先删除子表,再删除主表

主键和外键,列名可以不同,但是数据类型一定要相同

主键和外键建立联系第一种方法在建表的时候就联系,关键词是constraint,外键名一般以FK开头 foreign key代表外键,引用主键用关键词reference

主键&外键相关的SQL语句

2、插入数据

insert into 表名(列名1,列名2) values(值1,值2)

insert into 表名 values(值1,值2)

insert into 表名(列名1,列名2) values(值1,值2),(值1,值2)

批量插入数据

注意点:

批量插入比单条插入效率更高,但是更容易出现问题

插入全部列名可以省略,插入部分列的话就不能省略表名后面的列名。

有默认值的时候在values里面可以写默认值也可以写default

如果不写列名的情况下即使有些列可以为空,但是不能不写要写null,最好都写上列名,如果外键值超过了主表的主键数目,会报错

3、删除数据

delete from 表名 【where条件】

truncate table 表名

delete 和 truncate 的区别

delete 是DML语句 一条一条删除表中数据

truncate是DDL 先删除表再重建表

关于哪条执行效率高,具体要看表中的数据量,如果数据比较少,delete高效,数据多,则truncate效率高

当使用不带where条件的delete from删除数据时,自增当前数值依然从原来基础上进行,会记录日志,不删除表结构,但使用truncate table删除表中全部数据的时候,自增当前数值不从原来基础上进行,从原来自增初始值开始。如下例子:不会记录日志

两种不同村粗引擎,在使用delete from删除全部数据后,自增列初始值表现的不同:同样使用delete from清空数据,重启数据库服务后,对于INNODB的表,自增列从初始值从新开始(比如开始默认初始值是1,那就从1再开始),而对于MYISAM型的表,自增序列从上一个自增数据基础上开始,原因是:INNODB的数据是储存在内容中的,重启数据可服务后,之前的也就都没有了,而MYISAM是储存在文件中,就算重启,数据依然存在。

4、修改数据

update 表名 set 列名=值【where条件】

四、DQL查询语句

1、AS为字段取别名

AS可省略

2、Dinstinct去重复项

select distinct 字段名 from 表名

3、通用格式

4、基础查询

5、模糊查询

6、分组查询

7、连接查询

一定要先写连接查询再写where

多重嵌套连接:

注意:inner join ,和from以及on后面都不能用,隔开,否则会报1064错误

ASsub

7ONr.SubjectNo=sub.SubjectNo;

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181210G0GPFG00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券