3. MySQL语法

创建表:
create table blog_user
(
  user_Name varchar(15) not null,
  user_Password varchar(15) not null,
  user_emial varchar(20) not null unique,
  primary key(user_Name)         
)engine=innodb default charset=utf8;
 
1.查看表结构设计:desc 表名
 
1.sql语句中保留一位小数:CAST(cur_FUND_RATE/max(REPLACE(ladderValue,'%',''))*10 AS decimal(5,1))
 
1. 将 数据库中的  datatime 转换成  字符串格式

    如将  2012-09-27 16:57:50   转换成   20120927:
    date_format(createdate,'%Y%m%d')>='20120918'实现。
1.mysql 中sql语句中datetime日期格式:timestamp('2015-04-01 14:33:00')
1.mysql中sql语句获得今天的凌晨的时间:timestamp(date(sysdate()))
1.mysql中sql语句获得第二天凌晨的时间:timestamp(adddate(date(sysdate()),1))
1.mysql中sql语句获得第二天相同的时间:DATE_ADD( NOW() , INTERVAL 1 DAY)
2.将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’803.将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串
3.将varchar 转为Decimal 用 cast(a as decimal(8,4)) a为varchar类型的字符串
4.将一个字段中的“%”去掉:REPLACE(ladderValue,'%','')
5.case when 语句:
            CASE WHEN f.cumulativeNet = '0' then '————' 
                      WHEN f.cumulativeNet is null THEN '————' 
                      else f.cumulativeNet end
 
6.在数据表中新增字段:
ALTER TABLE funddeployinfo(数据表名) ADD createTime(字段名) datetime(字段类型) COMMENT '字段描述' AFTER fundDeployType(添加在本字段之后)
例如:
ALTER TABLE `healthinformation` ADD COLUMN `contenttype`  varchar(2) COMMENT '健康资讯内容类型(01:H5链接;02:自定义)' after `imgurl`;
7.创建索引:CREATE [UNIQUE] INDEX index_name ON table_name(cols,...) 删除索引:DROP INDEX index_name; #CREATE INDEX index_name ON FFundProductyield (fund_code,tradedate,yieldType); 索引不可更改,需要更改必须删除重新创建 8.创建视图:CREATE VIEW view_name AS SELECT statement; 删除视图:DROP VIEW view_name; 9.随机取出10条记录: 8.MySql数据库操作基础: #显示数据库 show databases; #判断是否存在数据库wpj1105,有的话先删除 drop database if exists wpj1105; #创建数据库 create database wpj1105; #删除数据库 drop database wpj1105; #使用该数据库 use wpj1105; #显示数据库中的表 show tables; #先判断表是否存在,存在先删除 drop table if exists student #修改表的名字 #格式:alter table tbl_name rename to new_name #修改表中某个字段的名字 alter table tablename change columnname newcolumnname type; #修改一个表的字段名 #表position 增加列test alter table position add(test char(10)); #表position 修改列test alter table position modify test char(20) not null; #表position 修改列test 默认值 alter table position alter test set default 'system'; #表position 去掉test 默认值 alter table position alter test drop default; #表position 去掉列test alter table position drop column test; #表depart_pos 删除主键 alter table depart_pos drop primary key; #表depart_pos 增加主键 alter table depart_pos add primary key PK_depart_pos (department_id,position_id);

查看Mysql表结构的命令,如下:

  desc 表名;
  show columns from 表名;
  describe 表名;
  show create table 表名;


  use information_schema
  select * from columns where table_name='表名';


  顺便记下:
  show databases;
  use 数据库名;
  show tables;

修改字段属性:

-- 修改字段属性
-- ALTER TABLE tb_name MODIFY 字段名称 字段类型 [完整性约束条件]
-- 将email字段 VARCHAR(50)修改成VARCHAR(200)
-- 注意,修改时如果不带完整性约束条件,原有的约束条件将丢失,如果想保留修改时就得带上完整性约束条件
ALTER TABLE user10 MODIFY email VARCHAR(200) NOT NULL DEFAULT 'a@a.com';

-- 将card移到test后面
ALTER TABLE user10 MODIFY card CHAR(10) AFTER test;

-- 将test放到第一个,保留原完整性约束条件
ALTER TABLE user10 MODIFY test CHAR(32) NOT NULL DEFAULT '123' FIRST;

修改字段名称和属性:
-- 将test字段改为test1
-- ALTER TABLE 表名 CHANGE 原字段名 新字段名 字段类型 约束条件
ALTER TABLE user10 CHANGE test test1 CHAR(32) NOT NULL DEFAULT '123';

添加删除默认值:

-- 创建新表
CREATE TABLE user11(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL UNIQUE,
age TINYINT UNSIGNED
);

-- 给age添加默认值
ALTER TABLE user11 ALTER age SET DEFAUTL 18;
-- 添加一个字段
ALTER TABLE user11 ADD email VARCHAR(50);
-- 给email添加默认值
ALTER TABLE user11 ALTER email SET DEFAULT 'a@a.com';

-- 删除默认值
ALTER TABLE user11 ALTER age DROP DEFAULT;
ALTER TABLE user11 ALTER email DROP DEFAULT;

更多详情,请参见:

https://www.cnblogs.com/huangxm/p/5736807.html
 

  




oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 
常用函数:substr和instr
1.SUBSTR(string,start_position,[length])    求子字符串,返回字符串
解释:string 元字符串
       start_position   开始位置(从0开始)
       length 可选项,子字符串的个数
For example:
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符 
substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符 
substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符 
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。 
substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。

2.INSTR(string,subString,position,ocurrence)查找字符串位置
解释:string:源字符串
      subString:要查找的子字符串
      position:查找的开始位置
      ocurrence:源字符串中第几次出现的子字符串
For example:
INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置;返回结果为 14 '

 

 

 

添加主键:

复制代码
-- 创建一个表
CREATE TABLE test12(
id INT
);
-- 添加主键
-- ALTER TABLE tb_name ADD [CONSTRAINT [sysmbol]] PRIMARY KEY [index_type] (字段名称,...)
ALTER TABLE test12 ADD PRIMARY KEY(id);


-- 添加复合主键
-- 先创建个表
CREATE TABLE test13(
id INT,
card CHAR(18),
username VARCHAR(20) NOT NULL
);
-- 添加复合主键
ALTER TABLE test13 ADD PRIMARY KEY(id,card);
复制代码

删除主键:

-- 删除主键
ALTER TABLE test12 DROP PRIMARY KEY;

-- 再给test12添加主键, 完整形式
ALTER TABLE test12 ADD CONSTRAINT symbol PRIMARY KEY index_type(id);

在删除主键时,有一种情况是需要注意的,我们知道具有自增长的属性的字段必须是主键,如果表里的主键是具有自增长属性的;那么直接删除是会报错的。如果想要删除主键的话,可以先去年自增长属性,再删除主键

复制代码
-- 再创建一个表,
CREATE TABLE test14(
id INT UNSIGNED KEY AUTO_INCREMENT
);

-- 删除主键,这样会报错,因为自增长的必须是主键
ALTER TABLE test14 DROP PRIMARY KEY;

-- 先用MODIFY删除自增长属性,注意MODIFY不能去掉主键属性
ALTER TABLE test14 MODIFY id INT UNSIGNED;
-- 再来删除主键
ALTER TABLE test14 DROP PRIMARY KEY;
复制代码

 

 

唯一索引:

复制代码
-- 添加唯一性约束
-- ALTER TABLE tb_name ADD [CONSTANT [symbol]] UNIQUE [INDEX | KEY] [索引名称](字段名称,...)

-- 创建测试表
CREATE TABLE user12(
id TINYINT UNSIGNED KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
card CHAR(18) NOT NULL,
test VARCHAR(20) NOT NULL,
test1 CHAR(32) NOT NULL
);

-- username添加唯一性约束,如果没有指定索引名称,系统会以字段名建立索引
ALTER TABLE user12 ADD UNIQUE(username);
-- car添加唯一性约束
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE KEY uni_card(card);
-- 查看索引
SHOW CREATE TABLE user12;

-- test,test1添加联合unique
ALTER TABLE user12 ADD CONSTRAINT symbol UNIQUE INDEX mulUni_test_test1(test, test1);

-- 删除唯一
-- ALTER TABLE tb_name DROP {INDEX|KEY} index_name;
-- 删除刚刚添加的唯一索引
ALTER TABLE user12 DROP INDEX username;
ALTER TABLE user12 DROP KEY uni_card;
ALTER TABLE user12 DROP KEY mulUni_test_test1;
复制代码

 

修改表的存储引擎:

-- 修改表的存储引擎
-- ALTER TABLE tb_name ENGINE=存储引擎名称
ALTER TABLE user12 ENGINE=MyISAM;
ALTER TABLE user12 ENGINE=INNODB;

 

修改自增长值:

-- 修改自增长的值
-- ALTER TABLE tb_name AUTO_INCREMENT=值
ALTER TABLE user12 AUTO_INCREMENT=100;
posted @ 2015-04-05 00:16  xu_shuyi  阅读(198)  评论(0)    收藏  举报