在MYSQL中操作数据库,练习SQL语句:
<1>对数据库的操作:
——查看所有数据库
show databases; (一定要注意bases末尾的s不要漏掉,并且写完要加;)
——新建数据库
create database 数据库名称; ——采用默认编码创建数据库
create database 数据库名称 character set 编码形式; ——采用指定编码形式(例如 utf8 等)创建数据库
——查看数据库的编码
show create database 数据库名称;
——修改数据库的编码
alter database 数据库名称 character set 编码形式;
——删除数据库
drop database 数据库名称;
——切换数据库
use 数据库名称;
——查看当前使用的数据库
select database();
——数据库备份
mysqldump -h服务器地址 -u用户名 -p密码 数据库名称 > 数据备份的路径
——数据库导入(数据恢复)
mysql -u用户名 -p密码 待导入数据的新数据库名称 < 导入的数据的存放路径
<2>对数据表的操作:
——数据表中字段的数据类型分为以下几类:
int , varchar(长度) , double , bit , datatime
——创建数据表
create table 数据表名称(字段1 数据类型,字段2 数据类型,字段3 数据类型...);
——查看当前数据库中的所有数据表
show tables;
——查看数据表编码
show create table 数据表名称;
——修改数据表编码
alter table 数据表名称 character set 编码形式;
——查看数据表结构
desc 数据表名称;
——修改数据表名称
rename table 旧的数据表名称 to 新的数据表名称;
——删除表
drop table 表名;
——修改数据表的结构
1.添加一列,即添加一个字段
alter table 数据表名称 add 字段名称 字段类型;
2.修改长度/类型/约束
alter table 数据表名称 modify 字段名称 新的类型(新的长度);
3.修改列名,即修改字段名称
alter table 数据表名称 change 旧字段名 新字段名 类型(长度);
4.删除列,即删除字段
alter table 数据表名称 drop 字段名称
<3>单表约束
1.主键约束 primary key 就是为了保证某一个列的数据不重复
可以在创建表的时候设置主键,也可以在创建后添加
——添加主键
alter table 表名 add 字段名称 字段类型 primary key;
可以在后面加上 auto_increment 表示自增
2.唯一约束 unique 也是为了保证数据不重复,与主键不同的是它可以控制多个字段不重复
3.非空约束 not null 被约束的字段不能为空
4.删除各种约束
——删除主键约束:在删除主键约束时,如果主键约束有自动增长属性,那么要先把自动增长属性给删掉,再删除主键才能成功
先 alter table 表名 modify 主键字段名 字段类型;
然后 alter table 表名 drop primary key;
——删除唯一约束:
alter table 表名 drop index 字段名称
——删除非空约束:
直接修改该字段就可以了,把非空约束去掉
<4>对数据进行操作(对字段操作)
1.增
——插入完整的一个数据
insert into 表名(字段名称1 ,字段名称2,字段名称3...) values(值1,值2,值3...);
(如果是添加完整的全部字段的数据,那么可以在这条语句中省略掉字段名称)
即 insert into 表名 values(值1,值2,值3...);
——插入部分数据
insert into 表名(字段名1,字段名2) values(值1,值2);
2.删
delete from 表名 条件(where);
3.改
update 表名 set 字段名 = 值 条件(where);
(例如:
update person set age = 3 where name = "danile";
update person set age = 5 where salary is null;
)这里要注意判断的时候如果判断是否为空,要用“ is null ”而不是“ =null ”
4.查
——查询所有表中数据
select * from 表名;
——精准查询(条件查询)
条件查询中的条件有(=,>,<,>=,<=,is null,is not null,and,or,like)
条件查询有四种方式:
(1)select * from 表名(where条件);
(2)select 列名1,列名2,列名3 from 表名 (where条件);
将符合条件的元素的列名1,列名2,列名3的内容输出,而不会把符合条件的元素的所有字段的内容输出
(3)select 列名1,列名2,列名3 order by 列名4 asc/desc;
将符合条件的元素的列名1,列名2,列名3的内容输出,元素的排列顺序升序或者降序
asc表示升序 desc表示降序
(4)select 列名1 as 别名1,列名2 as 别名2,列名3 as 别名3...from 表名 (where条件);
可以自定义输出结果的列名,将原有的表中的列名显示的时候改成了自定义的别名
——模糊查询
select * from 表名 where 字段名 like 关键字%;
其中%是通配符
<5>数据常用函数
——count() 统计个数
——sum() 求和
——avg()求平均值
——max,min 求最大最小值
——分组
select * from 表名 group by 字段名;
分组其实就是以某个字段为组,把相同的值的元素都折叠起来
在Android实际开发中,主要掌握对数据的操作即可