Mysql的实用语法

mysql是最基本的数据库,对于非数据库的开发人员来说,如何使用和查询等基本操作是了解和应用masql的基础,就mysql的操作作了一些实用的笔记:

SELECT VERSION(), CURRENT_DATE; #查版本
SELECT SIN(PI()/4), (4+1)*5;#简易计算器
SHOW DATABASES;
SELECT DATABASE();
SELECT USER()
CREATE DATABASE hfxtest;#创建数据库
USE hfxtest;
SHOW TABLES;

DROP TABLES test1#删除表
#创建表
CREATE TABLE if not exists test1(
  a INT(11) NOT NULL DEFAULT 0,
  b INT(11) DEFAULT 100,
  PRIMARY KEY (a)
)ENGINE=INNODB DEFAULT CHARSET=gbk;
#创建结束

alter table hfxtest rename as hfxtest1; #对表重新命名
create unique index ind_id on table1 (id);//建立唯一性索引
drop index idx_id on table1;
#分区
PARTITION BY RANGE (a) (
    PARTITION p0 VALUES LESS THAN (5),
    PARTITION p1 VALUES LESS THAN (10),
    PARTITION p2 VALUES LESS THAN (15)
);
#分区结束

DESCRIBE test1;#描述表信息
ALTER TABLE test1 ADD c INT(10);
ALTER TABLE test1 DROP c;
ALTER TABLE test1 ADD c DATE NOT NULL;
INSERT INTO test1 (a,b) VALUES (1,2);
INSERT INTO test1 (a,b) VALUES (4,5);
INSERT INTO test1 (a,b) VALUES (3,7);
#更新
UPDATE test1 SET b = 200 WHERE a = 3;
UPDATE test1 SET b = 200 WHERE a = 2;
#查询
SELECT * FROM test1;
SELECT T1.a,(T1.b+T2.c) FROM test1 AS T1 INNER JOIN test2 AS T2 ON T1.a = T2.a
#删除
DELETE FROM test2 WHERE a = 1

#控制流函数
SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
SELECT IF(1<2,'yes ','no');
SELECT IF((SELECT b FROM test1 WHERE a=1)<0,'<0','>0');
SELECT IF(STRCMP('test','test1'),'no','yes');

#字符串处理函数
SELECT LOCATE('bar', 'foobarbar');#查位置
SELECT LOWER('QUADRATICALLY'); #大小写转换
SELECT LPAD('hi',4,'??');#-> '??hi'
SELECT LPAD('hi',1,'??');#-> 'h'
SELECT REPEAT('MySQL', 3);#重复字符串
SELECT REPLACE('www.mysql.com', 'w', 'Ww');#替换
SELECT REVERSE('abc');#逆序
SELECT RIGHT('foobarbar', 4);#从字符串str 开始,返回最右len 字符
SELECT RPAD('hi',5,'?');#-> 'hi???'
SELECT SUBSTRING('Quadratically',5);#-> 'ratically'
SELECT SUBSTRING('Quadratically',5,6);#-> 'ratica' 
SELECT SUBSTRING('Sakila', -3);#-> 'ila'       
SELECT SUBSTRING('Sakila', -5, 3);# -> 'aki'
SELECT SUBSTRING('Sakila' FROM -4 FOR 2);#-> 'ki'
SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');#-> 'barxxx'
SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');# -> 'bar'
SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');#-> 'barx'
SELECT TRIM(LEADING 'ST' FROM 'ST60000.stk');#-> '60000.stk'

#通用操作
show processlist;列出每一笔联机的信息。
show varlables;列出mysql的系统设定。
show tables from db_name;列出db_name中所有数据表;
show [full] columns from table_name;列出table_name中完整信息,如栏名、类型,包括字符集编码。
show index from table_name; 列出table_name中所有的索引。
show table status;;列出当前数据库中数据表的信息。
show table status from db_name;;列出当前db_name中数据表的信息。
alter table table_name engine innodb|myisam|memory ;更改表类型
explain table_name / describe table_name ; 列出table_name完整信息,如栏名、类型。
show create table table_name 显示当前表的建表语句
alter table table_name add primary key (picid) ; 向表中增加一个主键
alter table table_name add column userid int after picid 修改表结构增加一个新的字段
alter table table_name character set gb2312 改变表的编码
select user(); 显示当前用户。
select password(’root’); 显示当前用户密码
select now(); 显示当前日期
flush privileges 在不重启的情况下刷新用户权限
mysqld –default-character-set=gb2312 ;设置默认字符集为gb2312

你可能感兴趣的:(Mysql的实用语法)