创建数据库:mysql> create database test default character set utf8;
查看数据库:mysql> show databases;
查看数据库编码:mysql> select schema_name,default_character_set_name from information_schema.schemata where schema_name ='test';
删除数据库:mysql>drop database test;
选择数据库:mysql> use bjsxt;
数值类型
浮点型:
字符串类型:
日期类型:
创建表:mysql> create table employees(employees_id int,last_name varchar(30),salary float(8,2));
修改表名:mysql> alter table employees rename emp;
修改列名:mysql>alter table emp change column last_name name varchar(30);
修改类型:mysql> alter table emp modify name varchar(40);
添加新列:mysql> alter table emp add column commission_pct float(4,2);
删除列:mysql> alter table emp drop column commission_pct;
创建表时指定约束:
实例:创建 departments 表包含 department_id 该列为主键且自动增长,department_name 列不允许重复,location_id 列不允含有空值。
mysql> create table departments(department_id int primary key auto_increment,department_name varchar(30) unique,location_id int not null);
实例2:创建 employees 表包含 employees_id 该列为主键且自动增长,last_name 列不允许含有空值,email 列不允许有重复不允许含有空值,dept_id 为外键参照 departments 表的主键。
mysql> create table employees(employee_id int primary key auto_increment,last_name varchar(30) not null,email varchar(40) not null unique,dept_id int,constraint emp_fk foreign key(dept_id)references departments(department_id));
添加主键约束:ALTER TABLE 表名 ADD PRIMARY KEY(列名)
修改为主键自动增长:mysql> alter table emp modify employees_id int auto_increment;
删除主键约束:mysql> alter table emp drop primary key; 先去除自动增长,再删除主键约束
修改为非空约束:mysql> alter table emp modify salary int not null;
删除非空约束:mysql> alter table emp modify salary float(8,2) null;
添加唯一性约束:mysql> alter table emp add constraint emp_uk unique(name);
删除唯一性约束:mysql> alter table emp drop key emp_uk;
添加外键约束:mysql> alter table emp add constraint e_fk foreign key(dept_id)references departements(department_id);
删除外键约束:mysql> alter table emp drop foreign key e_fk;
删除外键索引:mysql> alter table emp drop index e_fk;
添加数据:mysql> insert into departments(department_name,location_id)value("market",1);
完全插入: mysql> insert into departments values(default,"development",2); 自动增长可以用null,default,0占位
添加默认值:mysql> create table emp3(emp_id int primary key auto_increment,name varchar(30),adress varchar(50) default"unknow");
修改默认值:mysql> alter table emp3 add column job_id int default 0;
更新数据:mysql> update emp3 e set e.adress="BeiJing" where emp_id=1;
子查询更新:mysql> update emp3 e,(select adress from emp3 where emp_id =1)t set e.adress=t.adress where e.emp_id=2;
删除数据:mysql> delete from emp3 where emp_id=1;
清空数据:mysql> truncate table emp3;
手动提交事务:mysql> start transaction; commit:
mysql连接符:mysql> select concat(employee_id,'#',last_name,'#',email,'#',salary,'#',commission_pct,'#') from employees;
mysql去除重复:mysql> select distinct dept_id from employees;
字符处理:
CONCAT(str1,str2,...)将 str1、str2 等字符串连接起来 SUBSTR(str,pos,len)从 str 的第 pos 位(范围:1~str.length)开始,截取长度为 len的字符串 LENGTH(str)获取 str 的长度 INSTR(str,substr)获取 substr 在 str 中的位置 LPAD(str,len,padstr)/RPAD(str,len,padstr) TRIM(str)从 str 中删除开头和结尾的空格(不会处理字符串中间含有的空格) LTRIM(str)从 str 中删除左侧开头的空格 RTRIM(str)从 str 中删除右侧结尾的空格 REPLACE(str,from_str,to_str)将 str 中的 from_str 替换为 to_str(会替换掉所有符合from_str 的字符串) 数字函数 ROUND(arg1,arg2):四舍五入指定小数的值。 ROUND(arg1):四舍五入保留整数。 TRUNC(arg1,arg2):截断指定小数的值,不做四舍五入处理。 MOD(arg1,arg2):取余。 4日期函数 SYSDATE()或者 NOW()返回当前系统时间,格式为 YYYY-MM-DD hh-mm-ss CURDATE()返回系统当前日期,不返回时间 CURTIME()返回当前系统中的时间,不返回日期 DAYOFMONTH(date)计算日期 d 是本月的第几天 DAYOFWEEK(date)日期 d 今天是星期几,1 星期日,2 星期一,以此类推 DAYOFYEAR(date)返回指定年份的天数 DAYNAME(date)返回 date 日期是星期几 LAST_DAY(date)返回 date 日期当月的最后一天 转换函数 DATE_FORMAT(date,format)将日期转换成字符串(类似 oracle 中的 to_char()) STR_TO_DATE(str,format)将字符串转换成日期(类似 oracle 中的 to_date()) 通用函数 IFNULL(expr1,expr2)判断 expr1 是否为 null,如果为 null,则用 expr2 来代替 null(类似 oracle 的 NVL()函数) NULLIF(expr1,expr2)判断 expr1 和 expr2 是否相等,如果相等则返回 null,如果不相等则返回 expr1 IF(expr1,expr2,expr3)判断 expr1 是否为真(是否不为 null),如果为真,则使用 expr2替代 expr1;如果为假,则使用 expr3 替代 expr1(类似 oracle 的 NVL2()函数) COALESCE(value,...)判断 value 的值是否为 null,如果不为 null,则返回 value;如果为 null,则判断下一个 value 是否为 null……直至出现不为 null 的 value 并返回或者返回最后一个为 null 的 value CASE WHEN THEN ELSE END 条件函数