MariaDB基础知识和基础命令的使用

您所在的位置:网站首页 mariadb安装命令 MariaDB基础知识和基础命令的使用

MariaDB基础知识和基础命令的使用

2024-01-09 10:08| 来源: 网络整理| 查看: 265

一、目标

MariaDB最基本的一些知识学习和基础命令的使用

二、平台

centos7.6,  5.5.60-MariaDB MariaDB Server

三、解析 1.***

四、MariaDB基本用法

1.登录数据库 :[root@xserver ~]# mysql -u root -p 2.查看所有数据库:MariaDB [(none)]> show databases; 3.创建数据库:MariaDB [(none)]> create database kahnDB default charset=utf8; 4.使用某数据库: MariaDB [(none)]> use kahnDB; Database changed MariaDB [kahnDB]>  5.创建一张student表

MariaDB [kahnDB]> create table student(                       #创建表student    -> num int(10) not null unique primary key,                 #创建编号,设置为主键,不能为空,唯一    -> name varchar(20) not null,                                     #创建字段姓名,varchar20长度,非空    -> sex varchar(4) not null,                                           #创建字段性别,varchar4长度,非空    -> birthday datetime,                                                   #创建字段出生年月,数据类型为datetime    -> address varchar(50)                                               #创建家庭住址字段,数据类型为varchar长度50    -> );                                                                             #最后用);包住,回车创建完毕。Query OK, 0 rows affected (0.03 sec)

6.查看当前数据库的所有表信息:MariaDB [kahnDB]> show tables; 7.查看某表的数据结构:MariaDB [kahnDB]> desc student; 8.再创建另外一张表grade:

MariaDB [kahnDB]> MariaDB [kahnDB]> create table grade(                                                  #创建表grade    -> id int(10) not null unique primary key auto_increment,                    #创建字段id,int10类型,非空唯一,主键,自增长    -> course varchar(10) not null,                                                             #创建字段course,varchar类型长度10,非空    -> s_num int(10) not null,                                                                     #创建字段,int10,非空    -> grade varchar(4),                                                                                 -> constraint grade_fk foreign key(s_num) references student(num)  #创建外键约束名为grade_fk,本表外键约束字段为s_num对应的外部表是student的num字段。    -> );Query OK, 0 rows affected (0.01 sec)

9.查看创建表的语句:show create table 表名字\G MariaDB [kahnDB]> show create table grade\G *************************** 1. row ***************************        Table: grade Create Table: CREATE TABLE `grade` (   `id` int(10) NOT NULL AUTO_INCREMENT,   `course` varchar(10) NOT NULL,   `s_num` int(10) NOT NULL,   `grade` varchar(4) DEFAULT NULL,   PRIMARY KEY (`id`),   UNIQUE KEY `id` (`id`),   KEY `grade_fk` (`s_num`),   CONSTRAINT `grade_fk` FOREIGN KEY (`s_num`) REFERENCES `student` (`num`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 1 row in set (0.00 sec)

10.修改某字段的数据类型: 将grade表的course字段数据类型修改为varchar(20); MariaDB [kahnDB]> ALTER TABLE grade MODIFY course VARCHAR(20);

11.修改表中字段的排列顺序: 修改表grade中s_num字段,将其放到字段id后面 MariaDB [kahnDB]> ALTER TABLE grade MODIFY s_num INT(10) AFTER id;

12.将表中某字段改个名字: 将表grade中grade的字段名改为score MariaDB [kahnDB]> ALTER TABLE grade CHANGE grade score VARCHAR(4);

13.删除某表中的某字段的外键: MariaDB [kahnDB]> ALTER TABLE grade DROP FOREIGN KEY grade_fk; 13-1.要想删除某字段的外键属性,那必须先查到这个字段的外键名MariaDB [kahnDB]> show create table grade; 13-2.执行删除命令ALTER TABLE grade DROP FOREIGN KEY grade_fk;  将表grade的一个叫grade_fk的外键删除掉。

14.修改表的存储引擎为MyISAM: 14-1.先查看某表的当前存储引擎是啥:MariaDB [kahnDB]> show create table grade; 看最后一行有ENGINE=InnoDB就是 14-2.再将该表的存储引擎从InnoDB改为MyISAM引擎:MariaDB [kahnDB]> ALTER TABLE grade ENGINE=MyISAM;

15.删除表student中的address字段:MariaDB [kahnDB]> ALTER TABLE student DROP address;

16.在student表中增加一个字段名为phone,数据类型为int(10): MariaDB [kahnDB]> ALTER TABLE student ADD phone INT(10);

17.将表grade的表名改为gradeInfo:MariaDB [kahnDB]> ALTER TABLE grade RENAME gradeInfo;

18.删除表student:MariaDB [kahnDB]> DROP TABLE student;

19.查看数据库支持的所有存储引擎都有哪些?MariaDB [kahnDB]> SHOW ENGINES\G  ,support:YES才代表支持该引擎

20.查看数据库支持的所有存储引擎有哪些?MariaDB [kahnDB]> show variables like 'have%';

21.查看数据库默认用的存储引擎:MariaDB [kahnDB]> show variables like 'storage_engine';

2019年9月7日23:26:00

五、sql实例1

1.按要求创建一个表

MariaDB [kahnDB]> CREATE TABLE score( -> id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT, -> stu_id INT(10) NOT NULL, -> c_name VARCHAR(20), -> grade INT(10) -> );

2.插入数据到student表中: MariaDB [kahnDB]> INSERT INTO student VALUES(901,'张老大','男',1985,'计算机系','北京市海淀区'); MariaDB [kahnDB]> INSERT INTO score VALUES(NULL,901,'英语',80);    #由于score的id字段是自增长的,所以值写null即可。

3.在student表中,从第二条开始查,往后排3条信息(即第2条到第四条的内容) MariaDB [kahnDB]> SELECT * FROM student LIMIT 1,3;

4.在student表中,查询前3条信息:MariaDB [kahnDB]> SELECT * FROM student LIMIT 3;

5.查询出计算机系和英语系的所有学生信息: 方法1:MariaDB [kahnDB]> SELECT * FROM student WHERE department='计算机系' OR department='英语系'; 方法2:MariaDB [kahnDB]> SELECT * FROM student WHERE department IN('计算机系','英语系');

6.查询年龄在28到30之间的所有学生的信息。 方法1:MariaDB [kahnDB]> SELECT id,name,sex,2019-birth AS age,department,address FROM student WHERE 2019-birth BETWEEN 28 AND 30; 方法2:MariaDB [kahnDB]> SELECT id,name,sex,2019-birth AS age,department,address FROM student WHERE 2019-birth >= 28 AND 2019-birth SELECT department,COUNT(*) FROM student GROUP BY department;

8.查询出每个科目的最高分:MariaDB [kahnDB]> SELECT c_name, MAX(grade) FROM score GROUP BY c_name;

9.查询李四的所有科目成绩: MariaDB [kahnDB]> SELECT c_name, grade From score WHERE stu_id=(SELECT id FROM student WHERE name='李四');

10.用连接查询的方式查询所有学生信息和考试成绩: 格式1:MariaDB [kahnDB]> SELECT student.id,name,sex,birth,department,address,c_name,grade FROM student,score WHERE student.id=score.stu_id; 格式2:MariaDB [kahnDB]> SELECT stu.id,stu.name,stu.sex,stu.birth,stu.department,stu.address,sco.c_name,sco.grade FROM student AS stu,score AS sco WHERE stu.id=sco.stu_id;

11.计算出每个学生的总成绩: 格式1:MariaDB [kahnDB]> SELECT stu_id,SUM(grade) FROM score GROUP BY stu_id;: 格式二:MariaDB [kahnDB]> SELECT student.name,stu_id,SUM(grade) FROM score,student WHERE score.stu_id=student.id GROUP BY stu_id;

12.计算出每个的科目平均值: MariaDB [kahnDB]> SELECT c_name,AVG(grade) FROM score GROUP BY c_name;

13.查出计算机成绩低于95的所有学生信息 格式1:MariaDB [kahnDB]> SELECT * FROM student WHERE id IN (SELECT stu_id FROM score WHERE c_name='计算机' AND grade < 95); 格式2:MariaDB [kahnDB]> select stu.id, stu.name, sco.c_name, sco.grade from student as stu, score as sco where stu.id=sco.stu_id and  sco.c_name='计算机' and sco.grade < 95;

14.查询出同时参加了计算机和英语考试的学生信息: MariaDB [kahnDB]> SELECT * FROM student WHERE id=ANY(SELECT stu_id FROM score WHERE stu_id IN (SELECT stu_id FROM score WHERE c_name='计算机') AND c_name='英语');

15.将计算机程序进行倒序排序: MariaDB [kahnDB]> SELECT stu_id, grade FROM score WHERE c_name='计算机' ORDER BY grade DESC;

16.从student表和score表中查询学生的学号,然后合并查询结果: MariaDB [kahnDB]> SELECT id FROM student UNION SELECT stu_id FROM score;

17.从student表和score表中联合查询姓张的和姓王的同学的所有信息,同时把分数也带出来。 MariaDB [kahnDB]> SELECT student.id, name, sex, birth, department, address, c_name, grade FROM student, score WHERE (name LIKE '张%' OR name LIKE '王%') AND student.id=score.stu_id;

六、sql实例2

1.创建表 MariaDB [kahnDB]> CREATE TABLE food(     -> id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,     -> name VARCHAR(20) NOT NULL,     -> company VARCHAR(30) NOT NULL,     -> price FLOAT,     -> produce_time YEAR,     -> validity_time INT(4),     -> address VARCHAR(50)     -> );

2.插入一条数据: 格式1:MariaDB [kahnDB]> INSERT INTO food VALUES(1,'AA饼干','AA饼干厂',2.5,'2008',3,'北京'); 格式2:MariaDB [kahnDB]> INSERT INTO food (id,name,company,price,produce_time,validity_time,address) VALUES(2,'CC牛奶','CC牛奶厂',3.5,'2009',1,'河北');

3.一次插入多条数据: MariaDB [kahnDB]> INSERT INTO food VALUES     -> (NULL,'EE果冻','EE果冻厂',1.5,'2007',2,'北京'),     -> (NULL,'FF咖啡','FF咖啡厂',20,'2002',5,'天津'),     -> (NULL,'GG奶糖','GG奶糖厂',14,'2003',3,'广东');

4.将CC牛奶厂的厂址改为内蒙部,并且把价格改为3.2: MariaDB [kahnDB]> UPDATE food SET address='内蒙古',price=3.2 WHERE name='CC牛奶';

5.将厂址在北京的公司的保质期都改为5年: MariaDB [kahnDB]> UPDATE food SET validity_time=5 WHERE address='北京';

6.将过期食品都删除掉(假定当前是2012年): DELETE FROM food WHERE 2012-produce_time > validity_time;

写一篇要几个小时,博客写着确实不容易,希望得到你的支持。 (小手一抖点个赞或随意发个小红包支持一下博主写更多更好的博客)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3