当前位置:   article > 正文

mysql(一)

mysql(一)

一、数据库三层结构

        1.所谓安装mysql数据库,就是在客户端安装一个数据库管理系统(DBMS),这个程序可以管理多个数据库。

        2.一个数据库可以创建多个表,以存储信息。

        3.mysql数据库,普通表的本质仍是文件。

        4.数据在数据库中的存储方式:表的一行称为记录,在java程序中,条记录往往用一个对象表示。

        5.sql语句分类:

        1)DDL:数据定义语句(如create 表 库)

        2)DML:数据操作语句(如insert(插入)、update(更新)、delete(删除))

        3)DQL:查询语句(select)

        4)DCL:数据控制语句(管理数据库,比如用户权限grant、revoke)

二、数据库操作

1.创建数据库

  1. #演示数据库的操作
  2. #创建一个名为myDb01的数据库
  3. create database myDb01;
  4. #删除数据库指令
  5. drop database myDb01;
  6. #创建一个使用utf-8字符集的数据库myDb02
  7. #character set指定数据库采用的字符集,如果不指定,默认是utf8
  8. create database myDb02 character set utf8;
  9. #创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
  10. #collate 指定数据库字符集的校对规则,utf8_bin区分大小写,utf8_general_ci不区分大小写,默认是#utf8_general_ci
  11. create database myDb02 character set utf8 collate utf8_bin;
  12. #下面是一条查询的 sql , select 查询 * 表示所有字段 from从哪个表 where从哪个字段
  13. select*from table01
  14. where name='tom';

 2.查看、删除数据库

  1. #演示删除和查询数据库
  2. #查看当前数据库服务器中的所有数据库
  3. show database;
  4. #查看前面创建的 myDb01 数据库的定义信息
  5. show create database `myDb01`;
  6. #在创建数据库,表的时候,为了规避关键字,可以使用反引号解决
  7. #删除前面创建的 myDb01 数据库
  8. drop database myDb01;

3.备份恢复数据库

  1. #备份 myDb01 和 myDb02 库中的数据,并恢复
  2. #备份数据库(在Dos执行)命令行
  3. mysqldump -u root -p -B myDb01 myDb02>d:\\fold.sql;
  4. #恢复数据库(注意:进入 Mysql 命令行再执行)
  5. source d:\\fold.sql;
  6. #备份数据库中的表
  7. mysqldump -u root -p -B myDb01 表12 表n>d:\\文件名.sql;

4.创建表

create table 表名(

field1 datatype,

field1 datatype,

field1 datatype

)character set 字符集 collate 校对规则 engine 存储引擎;

mysql常用数据类型
分类数据类型及其说明
数值类型

BIT(M):位类型,M指定位数,默认值为1,范围是1-64

TINYINT[UNSIGNED]:占一个字节,带符号的范围是-128-127,无符号0-225,默认是有符号

SMALLINT[UNSIGNED] :2个字节,带符号的范围是-2^15-2^15-1,无符号0-2^16-1

MEDIUMINT[UNSIGNED]: 3个字节,带符号的范围是-2^23-2^23-1,无符号0-2^24-1

INT[UNSIGNED]:4个字节,带符号的范围是-2^31-2^31-1,无符号0-2^32-1

BIGINT[UNSIGNED] :8个字节,带符号的范围是-2^63-2^63-1,无符号0-2^64-1

FLOAT[UNSIGNED]:占用空间四个字节

DOUBLE[UNSIGNED]:表示比FLOAT精度更大的小数,占用8个字节

DECIMAL(M,D)[UNSIGNED]:定点数M指定长度,D表示小数点的位数

文本、二进制类型

char(size):固定长度字符串,最大长度为225

varchar(size):可变长度字符串,长度最大为2^16-1

BLOB  LONGBLOB:BLOB二进制数据0-2^16-1,LONGBLOB二进制数据0-2^32-1

TEXT  LONGTEXT:文本TEXT 0-2^16-1,LONGTEXT 0-2^32-1

时间、日期

DATE/DATETIME/TimeStamp:日期类型(YYYY-MM-DD)(YYYY-MM-DD HH:MM:SS),TimeStamp表示时间戳,它可以自动记录insert、update操作的时间

使用规范:在满足需求的情况下,尽量选用占用空间小的。

5.修改表

使用ALTER TABLE语句追加、修改或删除的语法

修改表-基本介绍
添加列

alter table tablename

add(column datatype [default expr]

[,column datatype ]...

);

修改列

alter table tablename

modify(column datatype [default expr]

[,column datatype ]...

);

删除列

alter table tablename

drop(column datatype [default expr]

[,column datatype ]...

);

修改表名:rename table 表名 to 新表名

修改表字符集:alter table 表名 character set 字符集;

  1. #创建一个表 Student
  2. create table Student(
  3. name varchar(10),
  4. age int,
  5. gender varchar(10),
  6. id varchar(10)
  7. )charset utf8 collate utf8_bin engine innodb;
  8. -- 在表Student上添加一个grade列(在gender之后)
  9. alter table Student
  10. add grade int not null default ''
  11. after gender;
  12. -- 删除age列
  13. alter table Student
  14. modify age int not null default '';
  15. -- 表名改为Stu
  16. rename table Student to Stu;
  17. -- 修改表的字符集为utf8
  18. alter table Stu character set utf8;
  19. -- 列名name修改为stu_name
  20. alter table Stu
  21. change `name` `stu_name` varchar(10) not null deafult''
  22. -- 显示表结构,可以查看表的所有列
  23. desc Stu

6.Insert语句

  1. #向Student中插入一条记录
  2. -- 在values中列出的数据位置必须与被加入的列的排列位置相对应
  3. -- 字符和日期数据必须包括在单引号中
  4. -- 列可以插入空值,前提是该字段允许为空
  5. -- 如果是给所有字段添加数据,可以不写前面字段名称
  6. -- 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
  7. -- 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null
  8. -- 如果我们希望指定某个列的默认值,可以在创建表时指定
  9. insert into `Student`(stu_name,gender,grade,id)
  10. values('小明','boy',100,'0423898');

7.update语句

  1. #update语句的使用
  2. -- 将所有学生的成绩修改为100
  3. update Stu set grade=100;
  4. -- 将名为小明的学生id修改为01
  5. update Stu set id=0
  6. where stu_name='小明';
  7. -- update语法可以用新值更新原有表行中的各列
  8. -- set子句提示要修改哪些列和给予哪些值
  9. -- where子句指定要更新哪些行,若没有where子句,则更新所有的行
  10. -- 如果需要修改多个字段,可以通过 set 字段1=1,字段2=2...

8.delete语句

  1. -- 删除表中名称为'小明'的记录
  2. delete from Stu
  3. where name='小明';
  4. -- 删除表中所有记录
  5. delete from Stu;
  6. -- delete不能删除某一列的值,可以用update设为null
  7. -- 删除这个表
  8. drop table Stu;

 9.select语句

  1. -- 查询表中所有学生信息
  2. select*from Stu
  3. -- 查询表中所有学生的姓名和对应的成绩。
  4. select `name`,grade FROM student;
  5. -- 过滤表中重复数据,要查询的数据每个字段都相同,才会去重
  6. select distinct grade from Stu;
  7. #向学生中添加成绩
  8. alter table Stu
  9. add grade1 int;
  10. alter table Stu
  11. add grade2 int;
  12. #在select语句中可以使用as语句
  13. selec column_name as 别名 from 表名
  14. -- 统计每个学生的总分
  15. select stu_name as name,(grade+grade1+grade2) as total_grade
  16. from Stu;

在where子句中经常使用的运算符

比较运算符:

  • >  <  <=  >=  =  <>  !=
  • between...and... 显示在某一区间的值
  • in(set) 显示在in中的值,例:in(100,200)
  • like '张...'  not like ' '模糊查询   
  • is null 判断是否为空

逻辑运算符:

  • and:多个条件同时成立
  • or:多个条件任一成立
  • not:不成立,例:where not(grade>90)
  1. -- 查询grade为98,87,65的学生
  2. select*from Stu
  3. where grade in(98,87,65);
  4. select*from Stu
  5. where grade=98 or grade=87 or grade=65;
  6. -- 查询所有姓陈的学生成绩
  7. select*from Stu
  8. where `name` like '陈%';
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/570762
推荐阅读
相关标签
  

闽ICP备14008679号