目录
数据库的操作
为了锻炼代码能力,这里我就不使用图形化工具了,建议大家也使用命令行敲,锻炼一下自己。能用命令行的图形化界面肯定没问题,但你用图形化界面却不一定能用命令行。在命令行编写代码的时候别忘了加分号表示语句的结束。
查看数据库
sql
show databases;
通过这个指令可以查看服务器有哪些数据库,大家刚安装完MySQL后会有一些自带的数据库,大家不要删除了哈。(下面图片红框框住的就是自带的)
创建数据库
创建数据库的时候我们会涉及到if not exists 和character set ....在下面这段代码中我会进行一下讲解,希望大家仔细观看哟!!
sql
//1.创建数据库最基本的语句
create database 数据库名;
//例:
create database sqltest;
/*2.如果出现同名的数据库,就会报错,
*批量执行sql的时候报错就很麻烦,所
*以我们创建数据库的时候可以用下面这个语句
*/
create database if not exists 数据库名;
/*先通过if not exists 数据库名判断是否服务器中是否存在
*这个这个数据库名的数据库,如果存在就不会创建,也不会报错,
*如果不存在就会创建*/
/*3.创建数据库的时候我们一般要进行字符集的设置,因为mysql默认字符
*是拉丁文,无法表示中文,ascall码无法表示中文,只可以表示字符和符号,
*只有gbk和utf8可以表示中文,但现在普遍使用的都是utf8,因为他表示的范围大,
*可以表示很多国家的语言符号,所以我们设置字符集为utf8。
*sql中有两种utf8,一个是utf8一个是utf8mb4,区别就是后者可以表示的内容更多,
*表情啥的后者均可以表示,但前者却不可以。两者用哪个在你们*/
//方式一
create database sqltest character set utf8mb4;
//方式二
create database sqltest charset utf8mb4;
- SQL的关键字不区分大小写。
- 数据库名不可以重复。
删除数据库
这个操作很危险,删了就是真的删除了,数据库里面的表和数据也全被删除了。嗯....建议谨慎操作
sql
drop database 数据库名;
使用数据库
MySQL是一个关系性数据库,操作都是依赖于表的。但是数据库有那么多,服务器怎么能知道我们对哪个数据库进行操作呢?那就是在对表操作前先使用数据库。
sql
use 数据库名;
数据库中表的操作
数据库中可以有很多表,每个表又可以有很多行很多列。在讲解数据库的表操作前,我们先对数据库中的类型进行介绍。进行表操作前一定要指定哪个数据库(use 数据库)
数据库中的数据类型
数据类型分为三种,数值类型,字符串类型,日期类型。
数值类型
1.第一个类型的括号中填写的要存的二进制的位数。
2.从tiny int 到big int存放的都是整型,正常来说,int就足够了,实际开发中看自己需要多大就设置为啥样的类型。
3.float,double,decimal括号中(M,D)啥意思呢?M表示这个数字一共有多少位,D表示小数点后面有多少位,例(3,1)---99.3(一共有三位,小数点后面只有一位)。decimal的精度比其他两个高,一般我们在一些比较严谨的场合都会用decimal。
4.最后一个和decimal区别不大。但一般不用这个。
字符类型
1.varchar(size)括号中存放的是字符串中字符的个数,自己设定。
日期类型
这两个没什么太大的区别,就是开始范围并不同和所占的大小不同,下面这个占4个字节,到38年就不可以在用了,完了保险起见我们用第一个更好。
创建表
补充一个小知识点:SQL中也有注释可以用#也可以用--
sql
1.create table 表名(列名 类型,列名 类型......)
#例子
create table student(id int, name varchar(20));
2.我们创建表的时候也可以给每一列增加一个注释,方便读我们代码的人可以知道我们每一列的含义
#使用comment这个关键字
create table student(id int comment 'ID', name varchar(20) comment '姓名');
3.我们也可以像创建数据库一样,为了防止同名出现时报错,我们也可以创建的时候多个判断
create table if not exists student(id int, name varchar(20));
查看数据库中的所有表
sql
show tables;
查看表的结构
sql
desc 表名;
上图可以看见我创建的student表的表结构,我们来对查询的信息进行分析
1.第一列存放的是表中的字段,也就是有几列。
2.第二列表示的是相应列对应的数据类型。大家可能会产生疑问,我创建int的时候并没有写括号中的内容,为啥查出来的就有。这个是默认提供的,表示这个显示的时候最多有11个字符宽(并不是占的内存)
3.第三列表示该列是否允许为空,允许就为yes。
4.key这列表示是否为主键。
5.倒数第二列表示默认值,当我们没有值的时候默认填充的值,服务器默认提供的null,我们也可以自己设定。
6.最后一列为其他信息,就是我们对表设置的其他操作。
删除表
删除表这个操作也非常危险,我们不可以随便就进行操作,表删除就是彻底删除,表中的数据也就全部删除了。
sql
drop table 表名;
#为了防止删除表的时候报错,我们也可以增加判断
#如果表存在才删除
drop table if exists student;