MySql---数据库笔记(功能齐全)

    科技2023-09-20  92

    ###数据库 ####数据库简介 - 通过IO流自己对数据进行操作需要写 - 大量的代码,而且不能保证程序的执行效率,IT行业中凡是很常用实现又很麻烦的业务,通常会有完整的解决方案,数据库软件就是对数据增删改查的解决方案,程序员只需要学习如何使用数据库软件即可。 - 什么是DBMS: DataBase数据库Management管理System系统(数据库管理软件),常见的DBMS: MySQL、Oracle、DB2、SQLserver等 ####DBMS介绍: 1. MySQL: Oracle公司产品, 08年被SUN公司收购,09年Sun公司被Oracle收购,担心MySQL被闭源,原MYSQL创始人们离开Oracle创建了MariaDB,市场占有率排名第一。 2. Oracle: Oracle公司产品,市场占有率排名第二,性能最高,价格最贵,老板拉力.艾莉森。 3. SQLServer: 微软公司产品,市场占有率排名第三,主要应用在微软的整套解决方案中 整套解决方案: 开发语言+操作系统+web服务软件+数据库软件 4. DB2: IBM公司产品,一般应用在IBM整套解决方案中 5. SQLite: 轻量级数据库。安装包只有几十k,应用在移动设备和嵌入式设备中 - 开源和闭源区别: 1. 开源: 开放源代码,免费,盈利方式:靠提供服务赚钱,有技术大牛无偿维护升级。 2. 闭源:不公开源代码,收费,盈利方式:靠卖产品和卖服务赚钱,有技术大牛攻击,不过公司有钱可以养一帮人维护。 ###SQL - Structured Query Language:结构化 查询 语言 ,用于程序员和数据库之间的交流,学习数据库主要学习的就是这门语言 ####如何连接MySQL数据库软件 1. window: 2. linux:在空白区域右键-》终端-》mysql -uroot -p 回车-》输入密码(没有密码直接敲回车)敲回车 3. 退出指令: exit ####数据库相关SQL 1. 查询所有数据库 - 格式:show databases; 2. 创建数据库并指定字符集 - 格式: create database 数据库名 character set utf8/gbk; create database db1 character set utf8; show databases; create database db2 character set gbk; 3. 查看数据库详情 - 格式: show create database 数据库名; show create database db1; 4. 删除数据库 - 格式: drop database 数据库名; drop database db1; 5. 使用数据库 - 格式: use 数据库名; use db1;(前提db1已经存在) - 练习: 1. 分别创建mydb1和mydb2数据库 第一个是gbk第二个是utf8 2. 创建完后查询两个是不是都存在 3. 查询两个字符集是否正确 4. 先使用mydb1再使用mydb2 5. 删除两个数据库 ####表相关SQL - 表相关的各种操作必须已经使用了数据库 create database db1 character set utf8; use db1; 1. 创建表 - 格式: create table 表名(字段名 类型,字段名 类型); create table person(name varchar(10),age int); - 练习: 创建学生表student 字段有: 学号id 姓名name 语文chinese 数学math 英语english create table student (id int,name varchar(10),chinese int,math int,english int); 2. 查询所有表 - 格式: show tables; 3. 查看表详情 - 格式: show create table 表名; show create table student; 4. 创建表指定字符集 - 格式: create table 表名(字段名 类型,字段名 类型) charset=utf8/gbk; create table t1(name varchar(10),age int)charset=gbk; show create table t1; 5. 查看表字段 - 格式: desc 表名; desc student; 6. 删除表 - 格式: drop table 表名 drop table t1; 7. 添加表字段 - 最后添加格式: alter table 表名 add 字段名 类型; alter table person add sal int; - 最前面添加格式:alter table 表名 add 字段名 类型 first; alter table person add id int first; - xxx的后面添加格式:alter table 表名 add 字段名 类型 after xxx; alter table person add gender varchar(10) after name; 8. 删除表字段 - 格式: alter table 表名 drop 字段名; alter table person drop gender; 9. 修改表字段名和类型 - 格式: alter table 表名 change 原名 新名 新类型; alter table person change sal gender varchar(10); ####数据库和表相关练习: 1. 创建数据库mydb1 字符集为utf8 并使用该数据库 create database mydb1 character set utf8; use mydb1; 2. 在mydb1中创建员工表emp 字段有name 字符集为utf8 create table emp (name varchar(10)) charset=utf8; 3. 添加表字段age在最后面 alter table emp add age int; 4. 添加id字段在最前面 alter table emp add id int first; 5. 添加sal字段在name的后面 alter table emp add sal int after name; 6. 修改字段sal为salary alter table emp change sal salary int; 7. 删除age字段 alter table emp drop age; 8. 删除emp表 drop table emp; 9. 删除数据库 drop database mydb1; ####数据相关SQL create database newdb1 character set utf8; use newdb1; create table emp(id int,name varchar(10),age int); 1. 插入数据 - 全表插入格式: insert into 表名 values(1,2,3); insert into emp values(1,'Tom',18); - 指定字段格式:insert into 表名(字段名1,字段名2)values(1,2); insert into emp(name,age) values('Jerry',15); - 批量插入数据格式: insert into emp values(4,'悟空',500),(5,'八戒',300),(6,'沙僧',200); insert into emp(name,age) values('刘备',25),('关羽',23),('张飞',18); - 中文问题: insert into emp values(3,'刘德华',25); 如果有同学执行以上SQL语句报错的话执行以下SQL语句即可 set names gbk; 2. 查询数据 - 格式: select 字段信息 from 表名 where 条件; - 举例: 1. 查询所有的员工姓名 select name from emp; 2. 查询所有员工的所有信息 select * from emp; 3. 查询年龄小于100岁的员工姓名和年龄 select name,age from emp where age<100; 4. 查询悟空的信息 select * from emp where name='悟空'; 3. 修改数据 - 格式: update 表名 set 字段名=,字段名=where 条件; - 举例: 1. 修改悟空名字为孙悟空 update emp set name='孙悟空' where name='悟空'; 2. 修改刘备年龄为50update emp set age=50 where name='刘备'; 3. 修改30岁以下的员工年龄为10update emp set age=10 where age<30; 4. 删除数据 - 格式: delete from 表名 where 条件; - 举例: 1. 删除Tom delete from emp where name='Tom'; 2. 删除年龄10岁的员工 delete from emp where age=10; 3. 删除所有数据 delete from emp; ####练习: 1. 创建hero表 id 名字name 类型type 价格money create table hero(id int,name varchar(10),type varchar(10),money int); 2. 保存以下数据 insert into hero values (1, '诸葛亮', '法师', 18888), (2, '周瑜', '法师', 13888), (3, '孙悟空', '打野', 18888), (4, '小乔', '法师', 13888), (5, '黄忠', '射手', 8888), (6, '刘备', '战士', 6888); 3. 修改所有1888828888 update hero set money=28888 where money=18888; 4. 修改所有法师为战士 update hero set type='战士' where type='法师'; 5. 删除价格为6888的英雄 delete from hero where money=6888; 6. 修改小乔为猪八戒 update hero set name='猪八戒' where name='小乔'; 7. 删除价格低于15000的英雄 delete from hero where money<15000; 8. 添加性别gender字段在name的后面 alter table hero add gender varchar(10) after name; 9. 修改所有英雄的性别为男 udpate hero set gender='男'; 10. 删除所有数据 delete from hero; 11. 删除表 drop hero; ####数据类型 1. 整数: int(m)bigint(等效java中的long) ,m代表显示长度 需要结合zerofill关键字使用 create table t_int(id int,age int(10) zerofill); insert into t_int values(1,20); select * from t_int; 2. 浮点数: double(m,d) m代表总长度 d代表小数长度 m=5 d=3 23.456,超高精度浮点数decimal(m,d) 只有涉及到超高精度运算时使用 3. 字符串: - char(m): 固定长度 m=5 "abc" 所占长度为5,执行效率略高 ,最大长度255 - varchar(m):可变长度m=5 "abc" 所占长度为3,节省空间,最大长度65535 超过255建议使用text - text(m):可变长度 最大长度65535 4. 日期: - date: 只能保存年月日 - time: 只能保存时分秒 - datetime:年月日时分秒 默认值null 最大值9999-12-31 - timestamp:时间戳 默认值当前系统时间 最大值2038119create table t_date(t1 date,t2 time,t3 datetime,t4 timestamp); insert into t_date values('2019-9-5',null,null,null); insert into t_date values(null,'17:37:28','2019-9-5 17:37:28',null); ###课程回顾: 1. 数据库相关SQL - show databases; - create database db1 character set utf8/gbk; - show create database db1; - drop database db1; - use db1; 2. 表相关SQL - create table t1(id int,name varchar(10)) charset=utf8/gbk; - show tables; - show create table t1; - desc t1; - drop table t1; - alter table t1 add age int first/ after xxx; - alter table t1 drop age; - alter table t1 change 原名 新名 新类型; 3. 数据相关SQL - insert into t1(字段名1,字段名2) values('值1','值2'),('值1','值2'); - select 字段信息 from t1 where 条件; - update t1 set xxx=xxx where 条件; - delete from t1 where 条件; 4. 数据类型 - 整数: intbigint - 浮点数: double(m,d) m总长度 d小数长度 超高精度decimal(m,d) - 字符串: char 固定长度 最大255 varchar 可变长度最大65535 超高255建议使用text text 可变长度最大65535 - 日期: date time datetime 最大9999-12-31 默认null timestamp最大2038-1-19 默认值当前系统时间 html css JavaScript jQuery Bootstrap MySQL

    个人文件里有很多粉丝专享文件,教程和源码

    Processed: 0.034, SQL: 8