首页 > 数据库技术 > 详细

mysql 学习

时间:2019-07-07 21:55:18      阅读:104      评论:0      收藏:0      [点我收藏+]
路径:C:\Program Files\MySQL\MySQL Server 5.5
以上教程很不错
 
登录
运行这个命令之前,一定要启动mysql.--------(在管理员终端运行)
打开mysql,需要通过cmd终端:mysql -u root -p
                输入密码:111 (笔记本中密码改为123)          可以进入
断开mysql
mysql> quit
Bye
 
 
 
具体操作
显示存储引擎: show engines;
数据库操作:
1.创建数据库: create database 名称;
2.查看所有的数据库: show databases;
3.选择使用数据库:    use 名称;
4.查看此数据库的内容: show tables;   由于没填东西,一般情况为空。
5.删除数据库:    drop database 名称;
 
创建数据库----创建数据表,修改表结构、数据表更名、删除数据表。
数据表操作:
create table table_name(列名称1,属性,列名称2,属性。。。。show)
mysql> create table tb_admin(
    -> id int auto_increment primary key ,
    -> user varchar(30) not null,
    -> password varchar(30) not null,
    -> createtime datetime);
Query OK, 0 rows affected (0.03 sec)
查看创建成功的数据表:
show columns  from 数据表名称 from 数据库名称;或者用describe或者desc 数据表名称 列名称;
mysql> show columns from tb_admin from db_admin;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| user       | varchar(30) | NO   |     | NULL    |                |
| qu   | varchar(30) | NO   |     | NULL    |                |
| createtime | datetime    | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec)
或者
mysql> ( tb_admin user;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| user  | varchar(30) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.01 sec)
 
2018/09/22
修改表结构---添加一个表信息-----alter table 表名称 add  信息,modify 表信息 ;
举例:mysql> alter table table_name add email varchar(50) not null,modify user varchar(40);
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
---添加新字段email,改user字段里的内容
 
重新命名表的名称:rename table 数据表名1 to 数据表2;
举例: mysql> rename table table_name to table_ivy;
Query OK, 0 rows affected (0.00 sec)
 
删除表:drop table 表名称;   删除表内容:truncate table 表名称;
mysql> drop table table_ivy;
Query OK, 0 rows affected (0.00 sec)
mysql> desc table_ivy;
ERROR 1146 (42S02): Table ‘teacher.table_ivy‘ doesn‘t exist
 
插入记录Insert: 建立一个空的数据库盒数据表时,首先要考虑的是如何想数据表中添加数据,通过insert操作
insert into 数据表名称(column_name,column_name2,...) values(value1,value2,...);
mysql> insert into table_name(user,password,createtime)
    -> values(‘tsoft‘,‘111‘,‘2018-9-22 09:07:00‘);
Query OK, 1 row affected (0.00 sec)
 
查询数据库记录select:
select * from 数据表名称;                      //查询数据表中所有数据
select user,pass from 数据表名称;        //查询数据表中user盒pass列的数据
 
从tb_mrbook.id,tb_mrbook.bookname,author,price from tb_mrbook,tb_bookinfo where tb_mrbook.bookname = tb_bookinfo.bookname and tb_bookinfo.bookname = ‘mysql 入门与实践‘;
从tb_mrbook和tb_bookinfo数据表中查询bookname=‘mysql入门与实践‘的作者和价格。。
 
用where查询tb_mrbook表,条件是Type(类别)为php的所有图书。
select * from tb_mrbook where type = ‘php‘;
 
用group by 对结果分组;
查询tb_mrbook表,按照type进行分组,求每类图书的平均价格。
select bookname,avg(price),type from tb_mrbook group by type;
 
用distinct在结果中去除重复行
select distinct type from tb_mrbook;    //查询tb_mrbook表,并在结果中去掉类型字段type中重复数据。
 
order by 对结果排序  (默认升序,desc降序)
查询tb_mrbook 表中的所有信息,按照“id”进行降序排列,并且只显示3条记录。
select * from tb_mrbook order by id desc limit 3;
 
like模糊查询:
“%”可以匹配一个或者多个字符,而“_”只匹配一个字符。
select * from tb_mrbook where bookname like(‘_h%‘);  // 查找所有第二个字母是‘h‘的图书。
 
 
unpdate student set age=23 where age>20;  改数据表中列名称的数据
 
2018/09/23
掌握函数------mysql函数:数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等
 
数学函数:
1. abs(x)函数---求绝对值
mysql> select abs(5),abs(-5);
+--------+---------+
| abs(5) | abs(-5) |
+--------+---------+
|      5 |       5 |
+--------+---------+
1 row in set (0.00 sec)
2. floor(x)函数---返回小于或者等于x的最大整数。
mysql> select floor(1.5),floor(-2);
+------------+-----------+
| floor(1.5) | floor(-2) |
+------------+-----------+
|          1 |        -2 |
+------------+-----------+
1 row in set (0.00 sec)
3. rand()函数----返回0~1之间的随机数。但是rand()返回的数是随机的。
mysql> select rand(),rand();
+--------------------+--------------------+
| rand()             | rand()             |
+--------------------+--------------------+
| 0.8454050355082424 | 0.5882898956428187 |
+--------------------+--------------------+
1 row in set (0.00 sec)
4. pi()函数---返回圆周率
mysql> select pi();
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)
5. truncate(x,y)函数---返回x保留到小数点后y位的值。
mysql> select truncate(2.23456789,3);
+------------------------+
| truncate(2.23456789,3) |
+------------------------+
|                  2.234 |
+------------------------+
1 row in set (0.00 sec)
6. round(x)函数和round(x,y)函数--- round(x)函数返回距离x最近的整数,也就是对x进行四舍五入处理;round(x,y)函数返回x保留到小数点位后y位的值,截断时需要进行四舍五入处理。
mysql> select round(1.6),round(1.2),round(1.123456,3);
+------------+------------+-------------------+
| round(1.6) | round(1.2) | round(1.123456,3) |
+------------+------------+-------------------+
|          2 |          1 |             1.123 |
+------------+------------+-------------------+
1 row in set (0.00 sec)
7. sqrt(x)函数---用于求平方根。
mysql> select sqrt(16),sqrt(25);
+----------+----------+
| sqrt(16) | sqrt(25) |
+----------+----------+
|        4 |        5 |
+----------+----------+
1 row in set (0.00 sec)
 
字符串函数:
1.insert(s1,x,len,s2)函数---将字符串s1中x位置开始长度为len的字符串用字符串s2替代。
mysql> select insert(‘mrkj‘,3,2,‘book‘);
+---------------------------+
| insert(‘mrkj‘,3,2,‘book‘) |
+---------------------------+
| mrbook                    |
+---------------------------+
1 row in set (0.00 sec)
2. upper(s)函数和ucase(s)函数---将字符串s的所有字母变成大写字母。
mysql> select upper(‘mrbook‘),ucase(‘mrbook‘);
+-----------------+-----------------+
| upper(‘mrbook‘) | ucase(‘mrbook‘) |
+-----------------+-----------------+
| MRBOOK          | MRBOOK          |
+-----------------+-----------------+
1 row in set (0.00 sec)
3. left(s,n)函数----返回字符串s的前n个字符。
mysql> select left(‘mrbccd‘,2);
+------------------+
| left(‘mrbccd‘,2) |
+------------------+
| mr               |
+------------------+
1 row in set (0.00 sec)
4. rtrim(s)函数---去掉字符串s结尾处的空格
mysql> select concat(‘+‘,rtrim(‘ mr ‘),‘+‘);
+-------------------------------+
| concat(‘+‘,rtrim(‘ mr ‘),‘+‘) |
+-------------------------------+
| + mr+                         |
+-------------------------------+
1 row in set (0.00 sec)
 
日期和时间函数
1. curdate()函数和current_date()函数--获取当前的日期
mysql> select curdate(),current_date();
+------------+----------------+
| curdate()  | current_date() |
+------------+----------------+
| 2018-09-23 | 2018-09-23     |
+------------+----------------+
1 row in set (0.00 sec)
2. curtime()函数和current_time()函数--获得当前时间
mysql> select curtime(),current_time();
+-----------+----------------+
| curtime() | current_time() |
+-----------+----------------+
| 20:59:35  | 20:59:35       |
+-----------+----------------+
1 row in set (0.00 sec)
3. now()函数---获得当前日期和时间
mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-09-23 21:00:47 |
+---------------------+
1 row in set (0.00 sec)
mysql> select current_timestamp(),localtime(),sysdate();
+---------------------+---------------------+---------------------+
| current_timestamp() | localtime()         | sysdate()           |
+---------------------+---------------------+---------------------+
| 2018-09-23 21:01:49 | 2018-09-23 21:01:49 | 2018-09-23 21:01:49 |
+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)
 
 
 
 
select @@basedir; 查看工作路径
 
问题: 中文字符问题-------
 insert into student values(null,"王刚","男",20,"13235936503");
ERROR 1366 (HY000): Incorrect string value: ‘\xCD\xF5\xB8\xD5‘ for column ‘name‘ at row 1
直接输入: set names gbk;
 
 
 
1.通过服务器
在打开的Windows10运行窗口中,输入命令services.msc,然后点击确定按钮---进入服务界面找到mysql可以更改启动,停止,暂停和恢复。
2.通过终端
非管理员:
C:\Users\qqw>net start mysql
发生系统错误 5。
拒绝访问。
管理员:(如何打开管理员模式----最简单的方法在cortana里面输入cmd--右键以管理员身份运行,就可以进入管理员界面)
C:\WINDOWS\system32>net start mysql
请求的服务已经启动。
请键入 NET HELPMSG 2182 以获得更多的帮助。
C:\WINDOWS\system32>NET HELPMSG 2182
请求的服务已经启动。
C:\WINDOWS\system32>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
 
错误记录:
问题1:在启动MYSQL时出现问题:“ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)”
说明---没有启动mysql
解决:启动mysql
 
问题2:发生系统错误 5。
拒绝访问
说明非管理员模式,需要打开管理员模式。
 
问题3:Mysql添加用户错误:ERROR 1364 (HY000): Field ‘ssl_cipher‘ doesn‘t have a default value解决方法,感兴趣的同学参考下。 错误描述: 添加用户 insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 报以下的错误 ERROR 1364 (HY000): Field ‘ssl_cipher‘ doesn‘t have a default value错误 mysql5.1以上版本,我是在5.6版本上操作的。
错语原因: mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。
解决方法: 正确的添加用户方法: GRANT USAGE ON *.* TO ‘user01‘@‘localhost‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION; 用户:user01,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。
问题4:C:\WINDOWS\system32>mysql
ERROR 1045 (28000): Access denied for user ‘ODBC‘@‘localhost‘ (using password: NO)
解决:重新启动mysql-----在打开的Windows10运行窗口中,输入命令services.msc,然后点击确定按钮---进入服务界面找到mysql可以更改启动,停止,暂停和恢复。
 
 

mysql 学习

原文:https://www.cnblogs.com/ivyharding/p/11147837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!