alter table 现有表名 rename 新表名 :更改数据库表名
alter table 表名 change 列名 新列名 数据类型 :修改列名
alter table 表名 add 列名 数据类型:添加字段
alter table 表名 drop 列名:删除字段
主键:确定数据的唯一性
添加主键的方法
create table 表名 (
id int
......
primary key(id)
);
create table 表名(
id int primary key,
....
)
alter table 表名 add primary key(id);
主键自增
create table 表名(
id int auto_increment;
primary key(id);
)
alter table 表名 modify 主键列名 类型 auto_increment
外键
create table student1 (
id int ,
name varchar(20),
teacher_id int,
primary key (id)
);
create table teacher1(
id int ,
name varchar(20),
primary key (id)
);
alter table 表名 add foreign key (外键列列名) references 指向的表名 (主键列列名);、、
条件判断
where 判断条件
and 并且 or 或者 and的优先级比or的高
判断是否为空的语句是 is not null;
between......and......
between 数值1 and 数值2;:在数值1和数值2直接 包括
in 指定数据
模糊查询 like
%是匹配任意个字符
_匹配单个字符 如果要查询%或者_的时候 需要加\来转义
order by 列名 asc(升序)/desc(降序)
limit 通常和order by一起用 limit 开始值(不包括),条数
分组关键词 group by
常用的函数有:
count(*)总条数
max(字段名) 最大值
min(字段名) 最小值
avg(字段名)平均值
sum(字段名)总和
having 过滤 可以做where做不了的
having avg>70;就可以过滤平均值大于70分的
常用函数:
select version() ;显示当前MySQL软件的版本
select database();显示当前所处数据库是哪个
select char_length('中国');返回字符个数。
select length('中国');返回字符所占字节数,MySQL中,一个UTF8编码的汉字占3个字节
select concat( 'a', 'b', 'c', 'd');返回 'abcd'。字符串拼接函数
select concat_ws( '=', 'a', 'b', 'c');返回 'a=b=c'。字符串拼接函数,第一个是拼接间隔符
select upper('abcd');返回ABCD。将参数中所有小写字母转换为大写
select lower('ABCD');返回abcd。将参数中所有大写字母转换为小写
select substring( '系统信息类', 1, 3 );返回 系统信。第2个参数代表从1开始的第几个字符,第3个参数代表截取字符个数
select trim(' abc ');返回 abc。用于删去参数左右的所有空格
select curdate();返回当前日期
select curtime();返回当前时间
select now();返回当前日期时间
select unix_timestamp();返回当前日期时间对应的时间戳(单位秒)
select unix_timestamp('2018-05-24 20:00:00');返回参数指定的日期时间对应的时间戳(单位秒)
select from_unixtime(1527163397);返回参数指定时间戳(单位秒)对应的日期时间
select datediff( '2018-05-23', now() );返回两个参数对应日期相差的天数(用第一个参数减第二个参数)
select adddate( now(), -2 );返回指定天数前/后的日期时间(第一个参数是日期时间,第二个参数是天数,向后加是正数,向前减是负数)
select year('2019-02-24');返回2019 获得年份
select month('2019-02-24') 返回2 获得月份
select day('2019-02-24') 返回 24 获取日
select if( <判断条件>, <条件为真时的返回值>, <条件为假时的返回值> );相当于Java中的三目运算符<判断条件> ? <条件为真的返回值> : <条件为假的返回值>。
如select if(1=1, 2, 3);返回2。
select ifnull(<表达式或者字段>, <表达式或者字段为NULL时的返回值>);通常用于给有可能有NULL的情况下的提供默认值。
select ifnull(null,'无名氏') ; null这里可以写列名 就会把该列值为null的 以无名氏显示
select ifnull(name,'无名氏') from teacher ;