1.sql中limit的使用方法
查询前10行数据
select * from customer limit 10;
从第2行开始查询,查询10条记录
select * from customer limit 1, 10;
2.实现全外连接
select * from emp e left join dept d on e.deptno=d.deptno
UNION
select * from emp e right join dept d on e.deptno=d.deptno;
3.数据库三范式
-
第一范式:表中列的值不可再分
-
第二范式:在第一范式的基础上,消除非主属性对主属性的部分依赖
-
第三范式:在第二范式的基础上,消除非主属性的传递依赖
4.mysql获取数据库中所有表名和列名
获取表名
select table_name from information_schema.tables where table_schema='数据库名'
获取列名
select column_name from information_schema.columns where table_schema='数据库名' and table_name='表名';
5.mysql创建存储过程报错
ERROR 1064 (42000): You have an error inyour SQL syntax; check the manual that
corresponds to your MySQL server versionfor the right syntax to use near '' at
line 4
原因在于,默认的MySQL语句分隔符为’ ; ‘,在输入’ ; '的时候,“以为”语句已经结束了,但实际上语句还没有结束。
解决方案:使用DELIMITER临时改变命令行的语句分隔符,在存储过程创建之后再修改分隔符为原来的" ;
DELIMITER $$
CREATE PROCEDURE productpricing()
BEGIN
SELECT AVG(prod_price) AS priceaverage
FROM products;
END $$
DELIMITER ;
6.使用存储过程插入多条记录
DELIMITER $$
CREATE PROCEDURE newStudent()
BEGIN
SET autocommit = 0;
SET @num = 1;
WHILE @num < 101 DO
INSERT INTO student(NO, NAME, score)
VALUES (@num, CONCAT('name', @num), FLOOR(0 + RAND()*100));
SET @num = @num + 1;
END WHILE;
COMMIT;
END $$
DELIMITER ;
7.导入大批量csv文件
LOAD DATA INFILE 'E:/user_small_log.csv'
INTO TABLE user_log
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;