数据库
MYSQL 6.0版本开始收费
Oracle
DB2
SQLServer
SyBase
SQLite
SQL语言:
用于操作数据库的代码
SQL分类
DDL:定义型 关键字 create alter drop(创建删除)
DCL:insert,delete,update修改(增加)语言
DQL:select,from,where查询语言
常用数据类型varchar,int double data(yyyy-MM-dd)
create database 数据库名 ;创建数据库
create database 数据库名 character set 字符集;
show databases;显示数据库
drop databases;数据库操作没有确认性(操作后立即生效)
use 数据库名
create table 表名{
列名1 数据类型 约束,
列名2 数据类型 约束,
列名3 数据类型 约束
}
约束就是限制了列能写什么数据
主键约束,被约束的具有唯一性
非空约束,不能为空
外键约束
唯一约束,唯一性
delete form 表名 :一条一条的删 但是不清空auto_inrement
truncate 表名: 直接删除重新建表 auto_increment被置为0
SHOW TABLES 查看表
DESC users 查看表结构
DROP TABLE 删除表
rename table users to newusers 改表名
Alter table 表名 add 列名 数据类型 约束 添加新的列
ALTER TABLE users DROP 删除列名 如果列中有数据 删除之后也全都没有
ALTER TABLE users MODIFY tel VARCHAR(50)
/*修改数据类型*/
ALTER TABLE users CHANGE tel newtel DOUBLE
/*修改列名*/
想数据表中添加数据
insert into 表名(列名1,列名2,....) values (要添加的值1,值2,值3) 除了数字之外 其他类型必须加''
注意:列名和表名的问题
对应(值与前面的列名都要对应 且数据类型也要对应;
添加数据格式:
不考虑主键:会出现断号的情况
insert into 表名 (列名) values (值)
添加数据格式:
所有值全给出
insert into 表名 values (全列值)
insert into 表名 (列名1,..2,...3) values (值1,..2,..3),(值1,..2,..3),(值1,..2,..3)
更新数据:
在原有的基础上修改
update 表明 set 列1=值1,列2=值2 where 条件 如果不加条件所有的数据都会被修改
修改条件的写法:
id=6;
id<>6;不等于
id<=6;
id in(1,2,3,4) 满足 1234都执行
与或非:
与and
或 or
非 not
dos命令窗口中获取内容乱码的解决办法
输入命令 set names 'gbk'
查询语句 :
select 列名1,列名2... from 表名 where 列明='';
select distinct 列名 from 表名;
查询重命名列
select zname AS '' 查询出来的数据重新建一个列名
查询过程中直接对数字进行计算
SELECT zname,zmoney+1000 FROM 表名
条件查询
between and
in
like '_'一个下划线代表1一个字符(一个汉字)
is null
SELECT * FROM students WHERE 班级 LIKE '%基础班%'
|
|