2023年6月21日发(作者:)
从0基础学习MySQL数据库(⼀)MySQL数据库技术⼀、数据库基本概念数据是如何存储的呢?变量、数组、集合、对象内存中:速度快,但是缺点不能永久保存,数据处于临时状态⽂件中:可以通过IO保存在⽂件,永久性,但是数据库操作不安全,不⽅便数据库:永久保存,查询速度快,⽅便数据管理,安全,缺点占⽤资源2.什么是数据库⽤于存储和管理数据的仓库,存放在计算机内,有组织,可共享的⼤量数据的集合数据库:DataBase 简称:DB3.数据库优点可存储⼤量数据⽅便检索保持数据的⼀致性、完整性安全、可共享通过组合分析、可产⽣新数据4.常⽤的数据库关系型数据库SQLMySQLOracleSQL ServerMongoDBIBM Db2⾮关系型数据库NOSQL5、MySQL为什么选择MySQL数据库⽬前是流⾏开源、免费关系的数据库⼩巧、功能齐全使⽤便携可运⾏于windows或Linux操作系统适⽤于中⼩型甚⾄⼤的⽹站应⽤⼆、MySQL数据库的常⽤操作启动服务①⼿动启动:我的电脑—管理—服务②DOS命令启动:win+r 运⾏窗⼝输⼊cmd,输⼊打开服务窗⼝③在运⾏窗⼝中直接输⼊直接打开服务窗⼝④使⽤管理员⾝份打开cmd命令⾏,输⼊ net start mysqlnet stop mysql 结束2、登录MySQL数据库① mysql -u⽤户名 -p密码② mysql -hIP地址 -u⽤户名 -p密码3、退出MySQL数据库exit 或 quit4、MySQL数据库的⽬录①三、SQL语⾔1、什么是SQL语⾔?结构化查询语⾔:Structured Query Language 是⼀种所有关系型数据库的查询规范,不同的数据库都⽀持,通⽤的数据库操作语⾔,操作所有关系型数据库的规则2、SQL通⽤语法 语句可以单⾏或者多⾏,以分号结束show databases;显⽰所有数据库信息数据库的SQL语句不区分⼤⼩写,关键字建议使⽤⼤写Show DataBases;3.三种注释①-- 注释 (-- 后⾯有空格)②#注释内容③/* 注释 */3、SQL分类(Data Definition Language) 数据定义语⾔: ⽤来定义数据库对象,数据库、数据表、列表,关键字:creat drop alter等等(Data Manipulation Language) 数据操作语⾔: ⽤来对数据中表的数据进⾏增删改操作,关键字:insert delete update等等(Data Query Language) 数据查询语⾔: ⽤来查询数据库中表的数据, 关键字:select where等等(Data Control Language)数据控制语⾔ ⽤来定义数据库的访问权限和安全级别,关键字:grant revoke等等四、DDL数据定义语⾔,操作数据库、表1、操作数据库CRUD:1.1C:Create 创建--
创建数据库create database 数据库名称;--
判断不存在,则创建create database if not exists 数据库名称;--
指定字符集create database 数据库名称 character set 字符集名称;1.2R:Retrieve 查询--
查询所有数据库的名称show databases;--
查询某个数据库的字符集show create database 数据库名称;1.3U:Update 修改--
修改数据库的字符集alter database 数据库名称 character set 字符集名称1.4D:Delete 删除--
删除数据库drop database 数据库名称;--
判断数据库存在,则删除drop database if exists 数据库名称;1.5其他操作--
查询当前是否处于某⼀个数据库下select database();--
切换到当前数据库use 数据库名称;2、操作数据表2.1Create创建--
创建表语法create table 表名( 列名1 数据类型1, 列名2 数据类型2, …… 列名n 数据类型n);mysql在⾃定义表名和列名时,规则①必须以字母开头②长度不能超过30字符③不能使⽤关键字,如mysql④只能使⽤如下字符:A-Z,a-z,0-9,$,下划线,但不能使⽤空格和单引号--
常⽤数据类型,主要使⽤在列上1.整数类型:int(长度); age int(2);2.⼩数类型:double(长度); score double(5,2);5为最多位,2表⽰保留2位⼩数,最⼤值999.993.⽇期类型:date 表⽰:me:不赋值默认null 表⽰:yyyy-MM-dd HH:mm:amp:时间戳类型包含年⽉⽇时分秒,但是秒值精确到⼩数位后6位,⼀般银⾏会⽤不赋值,默认当前系统时间,⾃动赋值6.字符类型:char(长度); 固定长度字符类型, name char(10);
'你好'占⽤了前4个字符,后6个会空格补齐7.字符串类型:verchar(长度) 动态, name verchar(10); '你好'占⽤了前4个字符,则⾃动分配4个字符,节约空间8.字符串类型:text 长度(0-65535字节):字节类型:字符类型--
创建学⽣表create table student( id int,--
学号 name varchar(50), --
姓名 age int(10), --
年龄 score double(4,1), --
成绩 birthday date, --
⽣⽇ insert_time timestamp --
添加时间);2.2Retrieve查询--
查询某个数据库中所有表名称show tables;--
查询创建表的SQL语句show create table 表名;--
查询表的结构;desc 表名;2.3Update修改1.添加⼀列,学⽣性别 sexalter table 表名 add 列名 数据结构2.修改列名、数据类型alter table 表名 change 列名 新类名 数据类型;alter table 表名 modify 列名 新数据类型;3.删除列alter table 类名 drop 列名;4.修改表名alter table 表名 rename 新表名;5.修改表的字符集-- 显⽰创建时的SQL语句show create table 表名;alter table 表名 character set utf8;2.4D:Delete 删除-- 删除表drop table 表名;drop table if exists 表名; -- 存在则删除五、DML(数据操作语⾔)数据表进增删改操作1.1插⼊数据语法:insert into 表名(列名1,列名2……列名n) values(值1,值2……值n);--
案例 insert into stu(id,name,sage,score,birthday,insert_time)values(001,'zhangsan',18,97.5,null,null); --
第⼀个null就是null,第⼆个null,因为是时间戳类型,默认当前时间
--
插⼊所有列时,可以不定义列名,默认插⼊顺序和创建顺序⼀致insert into stu values(003,'changjian',18,97.5,null,null);--
注意:1.列名和值要⼀⼀对应;2.除了数字类型,其他类型都要引号--
插⼊部分字段(部分列)insert into stu(id,sage,score) values(004,19,99.99);--
复制表create table 新表名 like 表名;--
只是创建了表结构,表内⽆数据--
数据迁移insert into 新表 select * from 表名;--
复制部分字段insert into 新表(id,name,age) select id,name,age from 表名;[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-ooxtEKTp-16)(C:Users245)]1.2删除数据语法: delete from 表名 [where 条件]1.删除⼀条记录delete from stu where
id=2;2.如果不加条件则会删除全部数据,但是表结构还在写⽇志,速度慢,但安全性⾼,可以恢复delete from 表名;drop table 表名;--
直接删除表结构以及数据3.如果我们要删除所有记录,速度快,不写⽇志,不可以恢复truncate table 表名; --
先删除表,再给创建⼀张⼀样的表,⽆法数据恢复注意:delete和truncate区别?1.3修改数据语法:update 表名 set 列名1 = 值1,列名2 = 值2……[where 条件]-- 修改⼀个字 update stu set sage = 20 where id=2;-- 修改多个字段update stu set name='taoc',sage = 18,score = 99.0 where id=3;-- 数据库默认编码格式UTF8 客户端gbk,所有插⼊中⽂应该转化;-- 注意:当修改含有null值的数据,不能⽤ = null,要⽤is null,is not null 判断
2023年6月21日发(作者:)
从0基础学习MySQL数据库(⼀)MySQL数据库技术⼀、数据库基本概念数据是如何存储的呢?变量、数组、集合、对象内存中:速度快,但是缺点不能永久保存,数据处于临时状态⽂件中:可以通过IO保存在⽂件,永久性,但是数据库操作不安全,不⽅便数据库:永久保存,查询速度快,⽅便数据管理,安全,缺点占⽤资源2.什么是数据库⽤于存储和管理数据的仓库,存放在计算机内,有组织,可共享的⼤量数据的集合数据库:DataBase 简称:DB3.数据库优点可存储⼤量数据⽅便检索保持数据的⼀致性、完整性安全、可共享通过组合分析、可产⽣新数据4.常⽤的数据库关系型数据库SQLMySQLOracleSQL ServerMongoDBIBM Db2⾮关系型数据库NOSQL5、MySQL为什么选择MySQL数据库⽬前是流⾏开源、免费关系的数据库⼩巧、功能齐全使⽤便携可运⾏于windows或Linux操作系统适⽤于中⼩型甚⾄⼤的⽹站应⽤⼆、MySQL数据库的常⽤操作启动服务①⼿动启动:我的电脑—管理—服务②DOS命令启动:win+r 运⾏窗⼝输⼊cmd,输⼊打开服务窗⼝③在运⾏窗⼝中直接输⼊直接打开服务窗⼝④使⽤管理员⾝份打开cmd命令⾏,输⼊ net start mysqlnet stop mysql 结束2、登录MySQL数据库① mysql -u⽤户名 -p密码② mysql -hIP地址 -u⽤户名 -p密码3、退出MySQL数据库exit 或 quit4、MySQL数据库的⽬录①三、SQL语⾔1、什么是SQL语⾔?结构化查询语⾔:Structured Query Language 是⼀种所有关系型数据库的查询规范,不同的数据库都⽀持,通⽤的数据库操作语⾔,操作所有关系型数据库的规则2、SQL通⽤语法 语句可以单⾏或者多⾏,以分号结束show databases;显⽰所有数据库信息数据库的SQL语句不区分⼤⼩写,关键字建议使⽤⼤写Show DataBases;3.三种注释①-- 注释 (-- 后⾯有空格)②#注释内容③/* 注释 */3、SQL分类(Data Definition Language) 数据定义语⾔: ⽤来定义数据库对象,数据库、数据表、列表,关键字:creat drop alter等等(Data Manipulation Language) 数据操作语⾔: ⽤来对数据中表的数据进⾏增删改操作,关键字:insert delete update等等(Data Query Language) 数据查询语⾔: ⽤来查询数据库中表的数据, 关键字:select where等等(Data Control Language)数据控制语⾔ ⽤来定义数据库的访问权限和安全级别,关键字:grant revoke等等四、DDL数据定义语⾔,操作数据库、表1、操作数据库CRUD:1.1C:Create 创建--
创建数据库create database 数据库名称;--
判断不存在,则创建create database if not exists 数据库名称;--
指定字符集create database 数据库名称 character set 字符集名称;1.2R:Retrieve 查询--
查询所有数据库的名称show databases;--
查询某个数据库的字符集show create database 数据库名称;1.3U:Update 修改--
修改数据库的字符集alter database 数据库名称 character set 字符集名称1.4D:Delete 删除--
删除数据库drop database 数据库名称;--
判断数据库存在,则删除drop database if exists 数据库名称;1.5其他操作--
查询当前是否处于某⼀个数据库下select database();--
切换到当前数据库use 数据库名称;2、操作数据表2.1Create创建--
创建表语法create table 表名( 列名1 数据类型1, 列名2 数据类型2, …… 列名n 数据类型n);mysql在⾃定义表名和列名时,规则①必须以字母开头②长度不能超过30字符③不能使⽤关键字,如mysql④只能使⽤如下字符:A-Z,a-z,0-9,$,下划线,但不能使⽤空格和单引号--
常⽤数据类型,主要使⽤在列上1.整数类型:int(长度); age int(2);2.⼩数类型:double(长度); score double(5,2);5为最多位,2表⽰保留2位⼩数,最⼤值999.993.⽇期类型:date 表⽰:me:不赋值默认null 表⽰:yyyy-MM-dd HH:mm:amp:时间戳类型包含年⽉⽇时分秒,但是秒值精确到⼩数位后6位,⼀般银⾏会⽤不赋值,默认当前系统时间,⾃动赋值6.字符类型:char(长度); 固定长度字符类型, name char(10);
'你好'占⽤了前4个字符,后6个会空格补齐7.字符串类型:verchar(长度) 动态, name verchar(10); '你好'占⽤了前4个字符,则⾃动分配4个字符,节约空间8.字符串类型:text 长度(0-65535字节):字节类型:字符类型--
创建学⽣表create table student( id int,--
学号 name varchar(50), --
姓名 age int(10), --
年龄 score double(4,1), --
成绩 birthday date, --
⽣⽇ insert_time timestamp --
添加时间);2.2Retrieve查询--
查询某个数据库中所有表名称show tables;--
查询创建表的SQL语句show create table 表名;--
查询表的结构;desc 表名;2.3Update修改1.添加⼀列,学⽣性别 sexalter table 表名 add 列名 数据结构2.修改列名、数据类型alter table 表名 change 列名 新类名 数据类型;alter table 表名 modify 列名 新数据类型;3.删除列alter table 类名 drop 列名;4.修改表名alter table 表名 rename 新表名;5.修改表的字符集-- 显⽰创建时的SQL语句show create table 表名;alter table 表名 character set utf8;2.4D:Delete 删除-- 删除表drop table 表名;drop table if exists 表名; -- 存在则删除五、DML(数据操作语⾔)数据表进增删改操作1.1插⼊数据语法:insert into 表名(列名1,列名2……列名n) values(值1,值2……值n);--
案例 insert into stu(id,name,sage,score,birthday,insert_time)values(001,'zhangsan',18,97.5,null,null); --
第⼀个null就是null,第⼆个null,因为是时间戳类型,默认当前时间
--
插⼊所有列时,可以不定义列名,默认插⼊顺序和创建顺序⼀致insert into stu values(003,'changjian',18,97.5,null,null);--
注意:1.列名和值要⼀⼀对应;2.除了数字类型,其他类型都要引号--
插⼊部分字段(部分列)insert into stu(id,sage,score) values(004,19,99.99);--
复制表create table 新表名 like 表名;--
只是创建了表结构,表内⽆数据--
数据迁移insert into 新表 select * from 表名;--
复制部分字段insert into 新表(id,name,age) select id,name,age from 表名;[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-ooxtEKTp-16)(C:Users245)]1.2删除数据语法: delete from 表名 [where 条件]1.删除⼀条记录delete from stu where
id=2;2.如果不加条件则会删除全部数据,但是表结构还在写⽇志,速度慢,但安全性⾼,可以恢复delete from 表名;drop table 表名;--
直接删除表结构以及数据3.如果我们要删除所有记录,速度快,不写⽇志,不可以恢复truncate table 表名; --
先删除表,再给创建⼀张⼀样的表,⽆法数据恢复注意:delete和truncate区别?1.3修改数据语法:update 表名 set 列名1 = 值1,列名2 = 值2……[where 条件]-- 修改⼀个字 update stu set sage = 20 where id=2;-- 修改多个字段update stu set name='taoc',sage = 18,score = 99.0 where id=3;-- 数据库默认编码格式UTF8 客户端gbk,所有插⼊中⽂应该转化;-- 注意:当修改含有null值的数据,不能⽤ = null,要⽤is null,is not null 判断
发布评论