mysql 学习和练习

MySQL 这个数据还是相当好用和稳定的. 虽然以前学过SQL-SERVER.但是语法好像真的忘记了差不多了.

这里就简单说说MySQL的一些常用用法的.  首先就是建库,赋予权限.建表,插入数据,更新数据.更新键值.建立外键.联合查询等等吧.

我会做一下基础的练习题,这样就算是来巩固一下知识吧.

给数据库赋予用户权限

mysql 学习和练习

grant all privileges on oldboy2.* to oldboy@'%' identified by '123456';  用%表示所有网络都可以访问,一般用localhost

flush privileges;  马上更新

MySQL 创建数据表
语法

CREATE TABLE table_name (column_name column_type);
创建一个student表

create table student(
stu_id INT NOT NULL AUTO_INCREMENT,
name CHAR(32) NOT NULL,
age INT NOT NULL,
register_date DATE,
PRIMARY KEY ( stu_id )
);

MySQL 插入数据
语法
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
插入数据
mysql> insert into student (name,age,register_date) values ("alex li",22,"2016-03-4")
-> ;

MySQL 查询数据
语法

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]

----------------------------------------------------------------------------------------------------------------------------------------------

下面是练习题:

一、表关系
请创建如下表,并创建相关约束

mysql 学习和练习

建立一个数据,并设置编码为uft-8  .

create database oldboy2 character set utf8 collate utf8_bin;

建立一个含外键的表.

create table `score` (
`scoreid` int(4) NOT NULL auto_increment,
`student_id` int(4) NOT NULL,
`corse_id` int(4) NOT NULL,
`number` int not null,
PRIMARY KEY(`scoreid`),
key `fk_score_stukey` (`student_id`),
key `fk_score_corkey` (`corse_id`),
constraint `fk_score_stukey` foreign key(`student_id`) references `student` (`sid`),
constraint `fk_score_corkey` foreign key(`corse_id`) references `course` (`cid`)
);

联合查询.查询“生物”课程比“物理”课程成绩高的所有学生的学号;

select A.student_id,sw,ty from
(select student_id,number as sw from score right join course on score.corse_id=course.cid where course.cname='生物') as A
left join
(select student_id,number as ty from score left join course on score.corse_id=course.cid where course.cname='体育') as B
on A.student_id=B.student_id where sw > if(isnull(ty),0,ty);

 if(isnull(ty),0,ty) 这个sql里的一个语法,意思如果ty为空则输出0否则输出ty.