博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL基础知识,如果有疏漏、错误的地方请大家指出
阅读量:30386 次
发布时间:2020-01-04

本文共 2879 字,大约阅读时间需要 9 分钟。

第一次写文章如果有看不懂的地方请大家在评论提出,

(本文章只适用于初学者)

1、数据库是什么

2、RDBMS

3、SQL

4、My SQL

5、服务端与客户端

5.1、服务端的操作

5.2、客户端的操作

6、数据类型与约束

7、数据库的备份与恢复

8、SQL语言

8.1、查询编辑器

8.2、数据表操作

8.3、数据操作-增删改

1.数据库是什么

数据库是存储有组织(结构化)的数据,为了高效的查询。

2.RDBMS

关系型数据库系统

关系型数据库的核心:用表存储数据

行:一条记录,代表一个事物信息

列:字段,代表一个事物的某一个特征(属性)

表:存储同一种事物的集合

仓库:由n个表组成

3.SQL

结构化查询语言,操作关系型数据库

不区分大小写,select,SELECT,SELEct

4.My SQL

由瑞典My SQL AB公司开发,后来被sun公司收购,sun公司后来又被oracle公司收购,目前属于oracle旗下产品

开源、免费、支持多平台。

5.服务端与客户端

MySQL是服务端,提供操作数据的服务

Navicat是客户端,提供界面,先链接服务端,操作mysql的数据

5.1 服务端的操作

找到mysql的服务。控制面板-管理工具-服务

MySQL有启动、停止、重启服务

5.2 客户端的操作

  • 链接服务端

MySQL必须是已经启动状态

需要IP,端口,用户名,密码

  • 数据库操作

-新建仓库

-使用仓库

-编辑仓库

-删除仓库

  • 数据表操作

-新建表

-修改表(重命名)

-设计表

(添加字段) 

(修改字段)

(删除字段)

-删除表

  • 数据的操作

-增

-删

-改

-查(打开表)

想在关系型数据库存数据,先有仓库,再有表,再存数据

6.数据类型与约束

数据类型

   整数:int默认有符号(可以存负数),无符号(不能存负数),长度没有意思

  小数:decimal,(5,3),整数占2位,小数点后占3位

  字符串:varchar,一个数字或一个字母或一个标点符号或一个中午占一个字符

  日期时间:datetime,格式:2020-0402 00:00:00

  主键:(primary key):唯一的标识一条数据,如果某个字段设置为主键,这列值唯一且不能为空,通常一个表会有一个ID字段,设置为主键,通常设置为自动递增(从1开始自动增长),设置为无符号

  ID字段:主键,无符号的int,自动递增

  非空:字段不允许为空,不填写值,显示为(null),是空,字符串不是空

  惟一(unique):此字段的值不允许重复,SQL语法会提到

  默认值(default):当不填写此值时会使用默认值,如果填写时以填写为准,给varchar或datetime字段设置默认值时,必须用英文引号

  外键:(foreign key):维护两个表之间的关联关系,SQL语法会提到

7.数据库的备份与恢复

备份

右键点击某个仓库-转储SQL文件-结构和数据

恢复

右键点击某个仓库-允许SQL文件-选择之前备份的文件

8.SQL语言

8.1  查询编辑器

某个仓库-查询-右键点击-新建查询

  •  每一天SQL语句结尾需要一个英文分号
  • 注释SQL语句:ctrl+/

         取消注释:ctrl+shift+/

8.2  数据表操作

创建表

语法:

create table 表名(字段名  类型  约束, 字段名  类型  约束,

.......)

例:创建学生表,字段要求如下

姓名(长度为10)

create table students(name varchar(10));

例:创建学生表,字段要求如下

姓名(长度为10),年龄

create table students2(name varchar(10),age int);

例:创建学生表,字段要求如下

姓名(长度为10),年龄,身高(保留小数点2位)

要一个主键字段:ID,无符号的整数,主键,自动递增

create table students3(

id int unsigned primary key auto_increment,

neme varchar(10)

age int,

height decimal(5,2));

删除表

语法:

语法一:drop table 表名

语法二:drop  table exists 表名

例:删除学生表

drop table students;

(如果表不存在,会报错)

drop table exists students2;

(如果表不存在,不会报错)

8.3  数据操作-增删改

添加一行数据

语法一:所有字段设置值,值的顺序与表中字段顺序相对应

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

例:插入一个学生,设置所有字段信息

insert into students3 values(1,'亚瑟',12,123.44);

主键列是自动增长,插入是需要占位,通常使用0或者default或者null来占位

insert into students3  values (0,'亚瑟',12,123.2);

insert into students3  values (default,'亚瑟',12,123.2);

insert into students3  values (null,'亚瑟',12,123.2);

语法二:部分字段设置值,值得顺序与给出的字段顺序对应

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

例:插入一个学生,只设置姓名

insert into students3(name) values ('鲁班大师智商250')

插入一个学生,只设置姓名和年龄

insert into students3 (age,name)values (88,'夏侯惇')

 

 

添加多行数据

语法一:写多条insert语句,语句之间用英文分号隔开

insert into students3  values (default,'亚瑟',12,123.66);

insert  into  students3 (name)values('黄忠');

insert  into  students (age,name)values (42,'孙策');

语法二:写一条insert语句,设置多条数据,数据之间用英文逗号隔开

insert into students3 values(null,'钟无艳',11,221),(null,'老夫子',22,331),(null,'煤气罐',33,441);

 

insert into students3(age,name)values (233,'鲁班'),(244,'鲁班2'),(211,'鲁班6');

插入数据时,设置值为空字符串

insert into students3(age,name)values(111,'');    (第二个值我没有填写即是null(为空))

                                                             

 

                                          最后希望大家每天都过得更加充实,晚安!

转载地址:http://nvbhbu.baihongyu.com/

你可能感兴趣的文章
android vlc使用教程_在android项目中使用VLC
查看>>
java和python交互 jni_Python基于pyjnius库实现访问java类
查看>>
macbook pro 卸载mysql_MacBook Pro全新重装OS X Yosemite
查看>>
已达到计算机的连接数最大值无法再同此远程计算机连接_电脑远程访问已达到计算机的连接数最大值怎么办?解决方法很简单...
查看>>
mysql表名长度_JavaWeb之MySQL(一)
查看>>
mysql服务器语法_Mysql语法
查看>>
pdf 模版 汉字和数字_《吉林大学珠海学院毕业论文(设计)模板》(汉字标题版) .pdf...
查看>>
python bottle部署_nginx+uwsgi+bottle python服务器部署
查看>>
python双击py一闪_Python脚本在双击.py时无法正常运行
查看>>
redis logfile为空_关于Redis(二)
查看>>
mysql 设计两个主键都不可重复_程序员面试备战篇:18个经典MySQL面试专题解析(干货分享答案)...
查看>>
下列关于python2.x和3.x的区别说法正确_Python 2.x和Python 3.x版本有哪些区别?【面试题详解】...
查看>>
git更换_git命令
查看>>
如何用python计算数独_python实现数独算法实例
查看>>
mysql构造器错误_使用Mp的条件构造器查询时时遇到mysql关键字怎么办呀
查看>>
java 技能_Java大牛必备的25个技能
查看>>
java 获取实体属性_java--获取实体类的属性可以的方法
查看>>
java多线程电子时钟代码实例_java多线程电子时钟代码实例
查看>>
java jvm内存地址_Java JVM内存那些事儿
查看>>
getwayworker timer_Laravel + Workerman 实现多进程定时器任务
查看>>