创建数据库
表示,这个数据库是否存在,如果已经存在就不创建,不存在就创建,如果没有这句,如果存在就会直接报错
需要哪步骤语句就选中哪条,然后点击类似播放机的按钮,可执行,再右击root@localhost选择刷新,就可以看见相应效果
查看,删除数据库
、当我们创建得数据库或者其他的名字为关键字时,需要用单引号。
、
备份数据库
现用管理员身份运行终端,然后输入mysqldump -u root -p -B 要备份的数据库名 >备份到的目录及备份文件名。如-》mysqldump -u root -p -B study >d:\\bask.sql
然后再在软件使用语句DROP DATABASE 刚备份的软件名,将其删除。
紧接着再需要恢复数据的话在管理员身份运行终端输入mysql -u root -p
再输入source 备份到的目录及备份文件名,例如source d:\\bask.sql
此时再去看我们得数据库,就可以看到,恢复的那个了
老师演示:
创建表
CREATA TABLE 表明(属性名 属性类型,
属性名 属性类型,
。。。。)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
常用数据类型
标红的为常用的·
数值型的基本使用
定义一个无符号的整数方式
create table t10 (id tinyint);//默认是有符号的
create table t11 (id tinyint unsigned);无符号的
倘若都为-1则会报错,因为,无符号的取值范围是0开始
数值型bit的使用
1.基本使用
mysql> create table t02 (num bit(8));
mysql> insert into t02 (1, 3);
mysql> insert into t02 values(2, 65);
2. 细节说明 bit.sql
- · bit 字段显示时,按照 位的方式显示.
- · 查询的时候仍然可以用使用 添加的数值
- · 如果一个值只有0,1可以编辑使用bit(1),可以节约空间
- · 位类型。M指定位数,默认值1,范围1-64
- · 使用不多.
放进来的值会转变成二进制形式存放
数值型(小数)的基本使用
- FLOAT/DOUBLE [UNSIGNED]-》Float 单精度精度,Double双精度.
- DECIMAL[M,D] [UNSIGNED]
- · 可以支持更加精确的小数位。M是小数位数(精度)的总数,D是小数点(标度)后面的位数。
- ·如果D是0,则值没有小数点或分数部分。M最大65。D最大是30。如果D被省略,默认是0。如果M被省略,默认是10。
- 建议:如果希望小数的精度高,推荐使用decimal
- 演示
数据类型字符串基本使用
当使用的是utf8时,则需要减去三个字节并将减去的字节除以3之后的大小才是真正可存放的字节大小,如果是gbk编码,则需要减3除以2,得到的才是真正需要存放的大小
字符串使用细节
细节1:
- char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算.
- varchar(4)//这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.
- 不管是 中文还是英文字母,都是最多存放4个,是按照字符来存放的.
细节2:
- char(4)是定长(固定的大小),就是说,即使你插入'aa',也会占用 分配的:4个字符的空间.
- varchar(4)是变长(变化的大小),就是说,如果你插入了‘aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(老韩说明:varchar本身还需要占用1-3个字节来记录存放内容长度)
细节3:什么时候使用char,什么时候使用varchar
- 如果数据是定长,推荐使用char,比如md5的密码,邮编,手机号,身份证号码等.char(32)
- 如果一个字段的长度是不确定,我们使用varchar,比如留言,文章
查询速度:char>varchar
细节4
- 在存放文本时,也可以使用Text数据类型.可以将TEXT列视为VARCHAR列,注意Text不能有默认值.大小0-2^16字节
- 如果希望存放更多字符,可以选择MEDIUMTEXT 0-2^24 或者 LONGTEXT 0~2^32
日期类型的基本使用
CREATE TABLE birthday6
( t1 DATE, t2 DATETIME,
t3 TIMESTAMP NOT NULL DEFAULT
CURRENT TIMESTAMP ON UPDATE
CURRENT TIMESTAMP ) ; timestampllJjaat
mysql> INSERT INTO birthday (t1,t2)
VALUES('2022-11-11','2022-11-11 10:10:10');
● 日期类型的细节说明
TimeStamp在Insert和update时,自动更新
黄色字体表示,如果你没有加入日期,就会用当前日期加入其中。或者你在更新字段时,他会用当前时间更新这个字段
DATE为年月日,DATETIME为年月日时分秒
例如下:
longin_time 后的类型是TIMESRAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,那么longin_time的值就会填入当前的时间
修改表
Insert语句
细节说明
- 插入的数据应与字段的数据类型相同。比如 把'abc'添加到int 类型会错误
- 数据的长度应在列的规定范围内,例如:不能将一个长度为80的字符串加到长度为40的列中。
- 在values中列出的数据位置必须与被加入的列的排列位置相对应。
- 字符和日期型数据应包含在单引号中。
- 列可以插入空值[前提是该字段允许为空],insert into table value(null)
- insert into tab_name(列名 .. )values (),(),()形式添加多条记录
- 如果是给表中的所有字段添加数据,可以不写前面的字段名称
- 默认值的使用,当不给某个字段值时,如果有默认值就会添加,否则报错
注意,当我们想给予默认值时,需要在插入数据时,谢明要插入的数据是哪几个,也就是这个括号内要写明插入的,这样才可以执行成功,未插入的也会自动补默认的值
updata语句
使用细节:
- UPDATE语法可以用新值更新原有表行中的各列。
- SET子句指示要修改哪些列和要给予哪些值。
- WHERE子句指定应更新哪些行。如没有WHERE子句,则更新所有的行!
- 如果需要修改多个字段,可以通过 set字段1=值1,字段2=值2 ....
delete语句
使用细节
- 如果不使用where子句,将删除表中所有数据。
- Delete语句不能删除某一列的值(可使用update设为 null或者 ‘ ’)
- 使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。drop table 表名;
select语句
where子句中经常使用的运算符
加括号代表两边条件都要为真,既要成绩符合,id也要在范围内,而不加的代表,可取,成绩符号id不符合的和id和成绩都符合的
使用order by子句排序查询结果
不可用中文字符串在by后面进行排序,否则排序会出错
合计/统计函数
count 返回行的总数
合计函数 - sum
合计函数 - avg
合计函数 - Max/min
使用group by子句对列进行分组,Having子句对分组后的结果进行过滤
字符串相关函数
数学相关函数
16
时间日期相关函数
当前的年月加时间
、