连接本地数据库:mysql -h localhost -u root -p
连接本地指定数据库:mysql -h localhost -u root -p 密码 -D 指定数据库名
查看数据库:show databases;
创建数据库:create database 数据库名;
查看当前使用数据库:show database();
使用指定数据库(更改数据库):use 指定数据库名;
创建表:create table student(
id int(5) primary key not null auto_increment, //主键, 非空, 自增
name varchar(10) not null,
sex char(1));
删除表的主键:alter table 表名 drop primary key;
给表添加主键:alter table 表名 add primary key(字段名); //在添加主键之前,必须先把字段中重复的数据删除掉
修改表的字段名:alter table student change oldname newname varchar(10) not null;
查看指定表结构:describe 表名;
查看当前数据库下所有表:show tables;
向表中插入数据:insert into 表名 (字段名1, 字段名2, 字段名3.....) values(内容1, 内容2, 内容3....);
注:在控制台输入汉字, 出现Error 1366 (HY000): Incorrect string value: '\xD5\XC5' for column '字段名' at row 1 时, 是因为控制台输入的汉字编码为gbk, 此时需在插入前声明, 即输入 set names gbk; 再输入insert......就好了.
修改数据库字符集:alter database 数据库名 character set utf8; //需先 use 数据库名;
sql 小结
union all关联两组数据集
select * from t where parent_id=123
union all
select * from t where parent_id in (select * from t where parent_id=123);
----------------------------------------------------------------
查询表的字段名
select t.COLUMN_NAME from cols t where t.table_name="表名"
-----------------------------------------------------------------
CASE WHEN语句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型数据库都受到支持,是标准的SQL语句.
可以这样子理解:CASE... WHEN... THEN ...ELSE ...END
CASE WHEN 语法有两种情况:
第一种是CASE 后面不带表达式的;
CASE WHEN expression THEN 操作1
WHEN expression THEN 操作2
.......
ELSE 操作n
END
第二种是CASE 后面带表达式的(而此时WHEN 后面的则是该表达式可能的值)
通用。
CASE expression
WHEN expression值1 THEN 操作1
WHEN expression值2 THEN 操作2
.......
ELSE 操作n
END
--------------------------------------------------------------