赞
踩
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)
- #演示数据库的操作
-
- #创建一个名为myDb01的数据库
- create database myDb01;
- #删除数据库指令
- drop database myDb01;
-
- #创建一个使用utf-8字符集的数据库myDb02
- #character set指定数据库采用的字符集,如果不指定,默认是utf8
- create database myDb02 character set utf8;
-
- #创建一个使用 utf8 字符集,并带校对规则的 hsp_db03 数据库
- #collate 指定数据库字符集的校对规则,utf8_bin区分大小写,utf8_general_ci不区分大小写,默认是#utf8_general_ci
- create database myDb02 character set utf8 collate utf8_bin;
-
- #下面是一条查询的 sql , select 查询 * 表示所有字段 from从哪个表 where从哪个字段
- select*from table01
- where name='tom';
- #演示删除和查询数据库
- #查看当前数据库服务器中的所有数据库
- show database;
-
- #查看前面创建的 myDb01 数据库的定义信息
- show create database `myDb01`;
- #在创建数据库,表的时候,为了规避关键字,可以使用反引号解决
- #删除前面创建的 myDb01 数据库
- drop database myDb01;
- #备份 myDb01 和 myDb02 库中的数据,并恢复
-
- #备份数据库(在Dos执行)命令行
- mysqldump -u root -p -B myDb01 myDb02>d:\\fold.sql;
-
- #恢复数据库(注意:进入 Mysql 命令行再执行)
- source d:\\fold.sql;
-
- #备份数据库中的表
- mysqldump -u root -p -B myDb01 表1 表2 表n>d:\\文件名.sql;
create table 表名(
field1 datatype,
field1 datatype,
field1 datatype
)character set 字符集 collate 校对规则 engine 存储引擎;
分类 | 数据类型及其说明 |
---|---|
数值类型 | 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操作的时间 |
使用规范:在满足需求的情况下,尽量选用占用空间小的。
使用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 字符集;
- #创建一个表 Student
- create table Student(
- name varchar(10),
- age int,
- gender varchar(10),
- id varchar(10)
- )charset utf8 collate utf8_bin engine innodb;
- -- 在表Student上添加一个grade列(在gender之后)
- alter table Student
- add grade int not null default ''
- after gender;
- -- 删除age列
- alter table Student
- modify age int not null default '';
- -- 表名改为Stu
- rename table Student to Stu;
- -- 修改表的字符集为utf8
- alter table Stu character set utf8;
- -- 列名name修改为stu_name
- alter table Stu
- change `name` `stu_name` varchar(10) not null deafult''
- -- 显示表结构,可以查看表的所有列
- desc Stu
- #向Student中插入一条记录
- -- 在values中列出的数据位置必须与被加入的列的排列位置相对应
- -- 字符和日期数据必须包括在单引号中
- -- 列可以插入空值,前提是该字段允许为空
- -- 如果是给所有字段添加数据,可以不写前面字段名称
- -- 默认值的使用,当不给某个字段值时,如果有默认值就会添加默认值,否则报错
- -- 如果某个列 没有指定 not null ,那么当添加数据时,没有给定值,则会默认给 null
- -- 如果我们希望指定某个列的默认值,可以在创建表时指定
- insert into `Student`(stu_name,gender,grade,id)
- values('小明','boy',100,'0423898');
- #update语句的使用
- -- 将所有学生的成绩修改为100
- update Stu set grade=100;
- -- 将名为小明的学生id修改为01
- update Stu set id=0
- where stu_name='小明';
- -- update语法可以用新值更新原有表行中的各列
- -- set子句提示要修改哪些列和给予哪些值
- -- where子句指定要更新哪些行,若没有where子句,则更新所有的行
- -- 如果需要修改多个字段,可以通过 set 字段1=值1,字段2=值2...
- -- 删除表中名称为'小明'的记录
- delete from Stu
- where name='小明';
- -- 删除表中所有记录
- delete from Stu;
- -- delete不能删除某一列的值,可以用update设为null
- -- 删除这个表
- drop table Stu;
- -- 查询表中所有学生信息
- select*from Stu
- -- 查询表中所有学生的姓名和对应的成绩。
- select `name`,grade FROM student;
- -- 过滤表中重复数据,要查询的数据每个字段都相同,才会去重
- select distinct grade from Stu;
-
-
- #向学生中添加成绩
- alter table Stu
- add grade1 int;
- alter table Stu
- add grade2 int;
-
- #在select语句中可以使用as语句
- selec column_name as 别名 from 表名
- -- 统计每个学生的总分
- select stu_name as name,(grade+grade1+grade2) as total_grade
- from Stu;
在where子句中经常使用的运算符
比较运算符:
逻辑运算符:
- -- 查询grade为98,87,65的学生
- select*from Stu
- where grade in(98,87,65);
- select*from Stu
- where grade=98 or grade=87 or grade=65;
- -- 查询所有姓陈的学生成绩
- select*from Stu
- where `name` like '陈%';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。