MySql学习笔记

一,数据表的创建和管理:

1.1.创建表定义非空约束:

CREATE TABLE test(
Tuser VARCHAR(20) NOT NULL ,
Tpasswd INT NOT NULL

)

1.2.创建默认值(关键字DEFAULT):

Tuser VARCHAR(20) NOT NULL ,
Tpasswd INT NOT NULL,
Tage INT DEFAULT 10

)

1.3.定义主键(关键字PRIMARY KEY(Tpasswd)):

CREATE TABLE test(
Tuser VARCHAR(20) NOT NULL ,
Tpasswd INT NOT NULL,
Tage INT DEFAULT 10,
PRIMARY KEY(Tpasswd)

)

1.4.创建联合主键(关键字PRIMARY KEY(Tpasswd,Tage)):

CREATE TABLE test(
Tuser VARCHAR(20) NOT NULL ,
Tpasswd INT NOT NULL,
Tage INT DEFAULT 10,
PRIMARY KEY(Tpasswd,Tage)

)

1.5.关联外键:

PRIMARY KEY(外键字段名称) REFERENCES 目标表明 (目标表主键)

1.6.修改已有数据表:

ALTER TABLE 表名 ADD 字段名 VARCHAR(50)

1.7.删除表字段:

ALTER TABLE 表名 DROP 字段名

1.8.删除数据表:

DROP TABLE 表名

第二数据库的增,删,改:

2.1.添加数据:

INSERT INTO test(Tuser,Tpasswd,Tage) VALUES('1',3,5);

2.2.更新数据:

UPDATE test SET Tuser='ttt' WHERE Tuser='2'

2.3.或条件更新数据:

UPDATE test SET Tuser='ttt' WHERE Tuser='2' OR Tage=5

2.4.删除数据:

DELETE FROM test WHERE Tuser='de' OR Tuser='ttt'

第三数据库的查询:

3.1.检索出需要的列:

SELECT username FROM user

3.2.别名列:

SELECT username AS uname ,PASSWORD AS p FROM user


SELECT username 姓名 ,PASSWORD 密码 FROM user


3.3.按条件过滤:

SELECT * FROM USER WHERE age>30

3.4.聚合函数查询最大值:

SELECT MAX(alaery) AS '最高工资' FROM USER

3.5.聚合函数查询平均值:

SELECT AVG(alaery) AS '平均工资' FROM USER

3.6.聚合函数查询数据和:

SELECT SUM(alaery) AS '工资总计' FROM USER

3.7.聚合函数查询最大和最小值:

SELECT MAX(alaery) AS '最高工资',MIN(alaery) AS '最低工资' FROM USER

3.8.聚合函数统计数量:

SELECT COUNT(*)AS '总数' FROM USER(若换成具体字段,只会统计不为空的字段数量)

3.9.数据排序升序(asc是代表升序,排序默认是升序所以asc可以省略):

SELECT * FROM USER ORDER BY alaery ASC

3.10.数据排序降序(若多个排序规则系统默认按照第一排序规则,若无法排序按照第二个排序规则,以此类推):

SELECT * FROM USER ORDER BY alaery DESC ,age DESC

3.11.模糊查询(单字符匹配):

SELECT * FROM USER WHERE username LIKE '李_'

3.12.模糊查询(多字符匹配):

SELECT * FROM USER WHERE username LIKE '李%'

3.13.模糊查询集合匹配:

SELECT * FROM USER WHERE username LIKE "张%" OR username LIKE "王%"

3.14.空值检索:

SELECT * FROM USER WHERE alaery IS NULL

3.15.非空检索:

SELECT * FROM USER WHERE alaery IS NOT NULL

3.16.反义检索(<>为不等于):

SELECT * FROM USER WHERE alaery<>788 AND age>=56

3.17.反义检索(添加NOT关键字可以实现反义):

SELECT * FROM USER WHERE NOT alaery=788 AND age>=56

3.18.范围值检索(其中的关键字是IN):

SELECT * FROM USER WHERE age IN(10,56,33)

3.19.范围值检索:

SELECT * FROM USER WHERE age>=20 AND age<50

3.20.范围值检索(BETWEEN 和AND关键字可以实现多个不连续范围查询):

SELECT * FROM USER WHERE (age BETWEEN 10 AND 30)OR (age BETWEEN 50 AND 60)

3.21.动态SQL创建(伪代码):

public void doSql(){
    Boolean hasWhere=false;
    StringBuilder sql=new StringBuilder("SELECT * FROM USER ");
    if(选中工号复选框){
        hasWhere=appendWhere(sql,hasWhere);
        sql.append("")
    }
    if(选中姓名复选框){
        hasWhere=appendWhere(sql,hasWhere);
        sql.append("")
    }
    if(选中工资复选框){
        hasWhere=appendWhere(sql,hasWhere);
        sql.append("")
    }
}

public Boolean appendWhere(StringBuilder sql,boolean hasWhere){
    if(!hasWhere){
        sql.append("WHERE");
    }else {
        sql.append("AND");
    }
    return hasWhere=true;
}

3.22.分组:

select * from user group by age

3.23.分组加聚合函数:

SELECT age,COUNT(*) FROM USER GROUP BY age

3.24.限制结果集行数(关键字LIMIT):

SELECT * FROM USER LIMIT 0,2

3.25.解决数据重复(关键字DISTINCT):

SELECT DISTINCT age FROM USER

3.26.常量字段:

SELECT "中国","西安" ,age FROM USER

3.27.字段间的计算:

SELECT username,PASSWORD ,age*alaery FROM USER

3.28.数据处理函数(统计长度):

SELECT username,LENGTH(username) AS '姓名长度' FROM USER WHERE username IS NOT NULL

3.29.数据处理函数(截取长度):

SELECT username,SUBSTRING(username,1,2) FROM USER


3.30.字符串的拼接(关键字CONCAT):

SELECT CONCAT('员工的姓名和工资',username,alaery) FROM USER

3.31.字符串拼接用固定分割符(关键字CONCAT_WS):

SELECT CONCAT_WS('?',username,alaery) FROM USER


3.32.不从实体表中取数据:

SELECT "abc"

3.33.结果集联合(关键字UNION):

SELECT NAME,math FROM user1 UNION SELECT NAME ,price FROM user2

第四函数:

4.1求绝对值(关键字ABS):

SELECT age-50,ABS(age-50),ABS(-25) FROM USER

4.2求平方指数(关键字POWER求):

SELECT age,POWER(age,2) FROM USER

4.3求平方根(关键字SQRT):

SELECT age,SQRT(age) FROM USER

4.4求随机数:

SELECT RAND()

4.5.舍入到最大整数(关键字CEILING):

SELECT age, age/3, CEILING(age/3) FROM USER

4.6.舍入到最小整数(关键字FLOOR):

SELECT age, age/3, FLOOR(age/3) FROM USER

4.7四舍五入获得整数(关键字ROUND):

SELECT age, age/3, ROUND(age/3) FROM USER

4.8获得π函数:

SELECT age, PI() FROM USER

4.9获取数据大小判断函数(关键字SIGN 当返回的值大于0函数返回1; 当返回的值是0时函数返回0; 当返回值小于0时函数返回值是-1):

SELECT age, SIGN(age-20) FROM USER


4.10求整除余数:

SELECT age, MOD(age,20) FROM USER

4.11求字符串长度:

SELECT age, LENGTH(username) FROM USER

4.12时间函数获得当前函数(NOW() ,SYSDATE(),CURRENT_TIMESTAMP这三个函数是等价的):

SELECT NOW() ,SYSDATE(),CURRENT_TIMESTAMP

4.13时间差函数:

DATEDIFF(date1,date2)

4.14获得时间是星期几函数:

DAYNAME(date1)

4.15获得日期指定部分:

DATE_FORMAT(DATE,farmt)

第五索引与约束:

5.1创建索引:

CREATE INDEX user_index ON USER(username)

5.2删除索引:

DROP INDEX user_index NO USER


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值