mysql从服务器能否修改数据,mysql数据库操作新手入门,手把手的教会你 _数据库教程...
由于新手入门PHP+Mysql技术,必定对Mysql操作存有疑问。
尽管PHPMyadmin管理数据库对新手来说也不妨为一种很好的方式。但更多的实际使用还要靠大家对Myql语句格式
的精通和熟练的操作。
为了方便新手尽快入门,掌握Mysql的奥妙。在下费了一个礼拜时间的调试和整理,终于完稿了这份比较完善的入
门级操作实例的指南。希望能给新入门的朋友扬帆指路,送一满帆的顺风。
Mysql4.1.10初级解读
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
安装注意事项
在安装的过程中,请记好您的密码,这是将来登录mysql的钥匙。
=======================无==敌==分==割==线=======================
一、Mysql数据库服务器登录
登录mysql需要切换到dos下的mysql的bin目录,进行如下操作:
语法格式:mysql -h host_name -u user_name -p password (本机的话-h 和host_name可省)
———————-我————割————————–
My Experience:
C:program filesmysqlmysql server 4.1bin>mysql -u root -p
Enter password:******
先输入用户名和密码登陆要求(加上-p),回车后等出现”Enter password:”,再输入密码回车,这样就可以
成功登陆mysql,否则将会登陆失败。
———————-我————割————————–
登陆成功后会显示如下信息:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 4.1.10-nt
Type help; or h for help. Type c to clear the buffer.
mysql>
标识”mysql>”,当你看到这个出现在窗口的最左边的顶格时,这就是告诉你,你可以输入命令进行操作了。
mysql> s 查看版本信息
mysql> q or mysql> quit 退出mysql数据库服务器
mysql> h or mysql> help 查看帮助(其他的数据库服务器相关命令)
=======================无==敌==分==割==线=======================
二、数据库操作
所要注意的是,所有举例的显示结果,均为下面操作步骤按顺序进行的结果。
———————-我————割————————–
2.1 查询语句
2.1.1 查看Mysql数据库的版本号和服务器的当前日期
mysql> select version(),current_date; (操作方式一)
mysql> select version()
-> ,current_date; (操作方式二)
※:操作语句间用”,”隔开,用”;”来表示操作结束,操作语句输入过程中,换行不影响操作过程。
2.1.2 查看服务器中的所有数据库
mysql> show databases;
———————-我————割————————–
2.2 创建数据库
2.2.1 创建数据库(当然,数据库名”asb”不能是已经存在的)
mysql> create database asb;
2.2.2 选用数据库,使其成为当前操作的数据库
mysql> use asb;
成功选中后会有如下显示:
Database changed
甚至可以在窗口命令登陆mysql数据库的时候直接选中要操作的数据库(当然前提是asb数据库存在)
bin>mysql asb -u uesername -p
Enter password:******
2.2.3 查看当前所操作的数据库名称
mysql> select database();
运行后结果如下:
+————+
| database() |
+————+
| asb |
+————+
1 row in set (0.00 sec)
———————-我————割————————–
2.3 创建表
2.3.1 用”create table”创建表(确认是要在当前数据库中创建,不是的话就先用use选中要创建表的那个数据库)
mysql> create table emp(emp_id varchar(6)
-> ,emp_name varchar(10)
-> ,emp_age int
-> ,emp-sal int
-> ,emp_bir date
-> ,emp_sex varchar(5)
-> );
2.3.2 查看当前数据库中的表(可以检验上例的”emp”表是否成功建立)
mysql> show tables;
如果是成功将是如下显示:
+—————+
| Tables_in_asb |
+—————+
| emp |
+—————+
1 row in set (0.00 sec)
2.3.3 查看数据表的结构
mysql> describe emp;
运行后结果会如如下显示:
+———-+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———-+————-+——+—–+———+——-+
| emp_id | varchar(6) | YES | | NULL | |
| emp_name | varchar(10) | YES | | NULL | |
| emp_age | int(11) | YES | | NULL | |
| emp_sal | int(11) | YES | | NULL | |
| emp_bir | date | YES | | NULL | |
| emp_sex | varchar(5) | YES | | NULL | |
+———-+————-+——+—–+———+——-+
———————-我————割————————–
2.4 插入数据
2.4.1 使用INSERT语句进行插入记录操作(数据库表中每一行就是一个记录,插入记录实际上就是向表中插入一行)
格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3…);
在VALUES关键字后括号中的数值和字符段,必须和你所建的表所定义的字段数据类型必须一致!
mysql> insert into emp values
-> (100005,啸天,27,3000,1979-07-10,male);
插入成功后会有如下信息显示:
Query OK, 1 row affected (0.03 sec)
2.4.2 查看表中的数据(可以确定数据是否已经成功插入)
mysql> select * from emp;
成功插入后的数据显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
+——–+———-+———+———+————+———+
1 row in set (0.00 sec)
一次性插入多行的格式:INSERT INTO table_name(数据表名) VALUES(值1,值2,值3…),(值1,值2,值3…);
mysql> insert into emp values
-> (100001,红枫,29,8000,1977-01-01,male),
-> (100002,丽鹃,27,7000,1979-12-31,fmale);
可以查看插入后的数据结果:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100004 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
3 rows in set (0.00 sec)
———————-我————割————————–
2.5 修改数据
2.5.1 使用UPDATE语句来更新表中的数据
mysql> update emp set emp_id=100001 where emp_name=红枫;
修改结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 3000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 8000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 7000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
3 rows in set (0.00 sec)
如果该语句没有后面的where限制,将会对表中所有的记录都进行修改。
如,给全部人加薪1000,可以如下修改:
mysql> update emp set emp_sal=emp_sal+1000;
修改结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
3 rows in set (0.00 sec)
———————-我————割————————–
2.6 高级查询方法
2.6.1 记录查询
查询emp表中,emp_name为啸天的全部信息
mysql> select * from emp where emp_name=啸天;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+——–+———-+———+———+————+———+
1 row in set (0.00 sec)
查询emp表中,emp_sal,工资在5000以上的全部信息
mysql> select * from emp where emp_sal>5000;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
2 rows in set (0.00 sec)
查询emp表中在1978年1月1日之后出生的
mysql> select * from emp where emp_bir>1978-01-01;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
2 rows in set (0.00 sec)
查询emp表中在1979年12月1日之前出生,工资在5000以上的
mysql> select * from emp where emp_bir<1979-12-01 and emp_sal>5000;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+——–+———-+———+———+————+———+
1 row in set (0.00 sec)
2.6.2 字段查询
CEO查看员工工资情况
mysql> select emp_name,emp_sal from emp;
查询结果显示如下:
+———-+———+
| emp_name | emp_sal |
+———-+———+
| 啸天 | 4000 |
| 红枫 | 9000 |
| 丽鹃 | 8000 |
+———-+———+
3 rows in set (0.00 sec)
查看1978年后出生的人的姓名、工资和性别
mysql> select emp_name,emp_sal,emp_sex from emp where emp_bir>”1977-12-31″;
查询结果显示如下:
+———-+———+———+
| emp_name | emp_sal | emp_sex |
+———-+———+———+
| 啸天 | 4000 | male |
| 丽鹃 | 8000 | fmale |
+———-+———+———+
2 rows in set (0.00 sec)
2.6.3 查询结果排序
用ORDER BY语句对emp表中所有员工工资高低顺序查询结果(默认是从低到高——升序)
mysql> select * from emp order by emp_sal;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+——–+———-+———+———+————+———+
3 rows in set (0.00 sec)
用DESC关键字来进行从高到低排序——降序
mysql> select * from emp order by emp_sal desc;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+——–+———-+———+———+————+———+
3 rows in set (0.00 sec)
2.6.4 查询结果数量的限制
用LIMIT查看emp表中工资收入排名前两个员工的资料:
mysql> select * from emp order by emp_sal desc limit 2;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
+——–+———-+———+———+————+———+
2 rows in set (0.00 sec)
查看工资排名第2到第3的员工资料:
mysql> select * from emp order by emp_sal desc limit 1,2;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100002 | 丽鹃 | 27 | 8000 | 1979-12-31 | fmale |
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+——–+———-+———+———+————+———+
2 rows in set (0.01 sec)
使用rand()抽样调查,随机抽取2个员工,查看其资料
mysql> select * from emp order by rand() limit 2;
如如下结果:(随机的)
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+——–+———-+———+———+————+———+
2 rows in set (0.01 sec)
2.6.5 查询结果的字段联合和重新命名
mysql> select concat(emp_id,” “,emp_name) from emp;
查询结果:
+——————————+
| concat(emp_id,” “,emp_name) |
+——————————+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+——————————+
3 rows in set (0.00 sec)
用AS关键字重新给输出结果命名标题
mysql> select concat(emp_id,” “,emp_name) as info from emp;
查询结果如下显示:
+—————-+
| info |
+—————-+
| 100005 啸天 |
| 100001 红枫 |
| 100002 丽鹃 |
+—————-+
3 rows in set (0.00 sec)
2.6.6 日期查询的相关运算
可以通过YEAR()、MONTH()、DAYOFMONTH()函数来提取日期的组成元素
查询7月份出生的员工资料:
mysql> select * from emp where month(emp_bir)=7;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100005 | 啸天 | 27 | 4000 | 1979-07-10 | male |
+——–+———-+———+———+————+———+
1 row in set (0.00 sec)
可以利用英文月份来查询:
mysql> select * from emp where monthname(emp_bir)=”January”;
查询结果显示如下:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100001 | 红枫 | 29 | 9000 | 1977-01-01 | male |
+——–+———-+———+———+————+———+
1 row in set (0.00 sec)
利用TO_DAYS()函数可以查询出职工们从出生到现在所经理的时间,单位是天数
mysql> select to_days(current_date) – to_days(emp_bir) as livingdays from emp;
查询后结果如下:
+————+
| livingdays |
+————+
| 9425 |
| 10345 |
| 9251 |
+————+
3 rows in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_add(now(),interval 100 day);
查询结果如下:
+———————————-+
| date_add(now(),interval 100 day) |
+———————————-+
| 2005-08-07 13:56:58 |
+———————————-+
1 row in set (0.00 sec)
计算从现在开始经历100天后的日期
mysql> select date_sub(now(),interval 100 day);
查询结果如下:
+———————————-+
| date_sub(now(),interval 100 day) |
+———————————-+
| 2005-01-19 14:00:20 |
+———————————-+
1 row in set (0.00 sec)
2.6.7 数据统计
使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目)
mysql> select count(*) from emp;
查询结果如下:
+———-+
| count(*) |
+———-+
| 3 |
+———-+
1 row in set (0.01 sec)
统计工资上5000的数目
mysql> select count(*) from emp where emp_sal>5000;
查询结果如下:
+———-+
| count(*) |
+———-+
| 2 |
+———-+
1 row in set (0.00 sec)
统计男女职工数目:(GROUP BY语句分类)
mysql> select emp_sex,count(*) from emp group by emp_sex;
查询结果如下:
+———+———-+
| emp_sex | count(*) |
+———+———-+
| fmale | 1 |
| male | 2 |
+———+———-+
2 rows in set (0.01 sec)
使用数据统计函数(MIN(),MAX(),SUM(),AVG())
mysql> select
-> min(emp_sal) as min_salary,
-> max(emp_sal) as max_salary,
-> sum(emp_sal) as sum_salary,
-> avg(emp_sal) as avg_salary,
-> count(*) as employee_num
-> from emp;
查询结果如下:
+————+————+————+————+————–+
| min_salary | max_salary | sum_salary | avg_salary | employee_num |
+————+————+————+————+————–+
| 4000 | 9000 | 21000 | 7000.0000 | 3 |
+————+————+————+————+————–+
1 row in set (0.00 sec)
2.6.8 从多个数据表中检索信息
根据前面的方法,分别进行如下操作:
1). 在数据库asb中建立一个新表dept,表中有两项元素:
dept_id –> varchar(6)
dept_name –> varchar(10)
2). 在表emp中插入如下一行新记录:
+——–+———-+———+———+————+———+
| emp_id | emp_name | emp_age | emp_sal | emp_bir | emp_sex |
+——–+———-+———+———+————+———+
| 100003 | 小红 | 30 | 8000 | 1976-11-11 | fmale |
+——–+———-+———+———+————+———+
3). 在新表dept中,输入如下记录
+———+———–+
| dept_id | dept_name |
+———+———–+
| 100005 | MTD |
| 100001 | MTD |
| 100002 | MTD |
| 100003 | HR |
+———+———–+
查询emp和dept这两个表中,员工的姓名和部门信息
mysql> select emp.emp_name,dept.dept_name from emp,dept
-> where emp.emp_id=dept.dept_id;
查询结果如下:
+———-+———–+
| emp_name | dept_name |
+———-+———–+
| 啸天 | MTD |
| 红枫 | MTD |
| 丽鹃 | MTD |
| 小红 | HR |
+———-+———–+
4 rows in set (0.00 sec)
多表查询时注意:
1). FROM子句必须给出所查询的表的全部名称
2). 选择字段时候注明其所属表的名称(如emp表中的emp_id要表示为emp.emp_id)
3). 在Where子句中必须指明查询的条件(如,emp.emp_id和dept.dept_id是相同意义的元素)
———————-我————割————————–
2.7 删除表单数据
2.7.1 使用DELETE语句删除表单中的数据记录
小红不在了哦,得删了吧
mysql>delete from emp where emp_name=小红;
执行成功后会如下显示:
Query OK, 1 row affected (0.06 sec)
省略where是删除全部表中的记录
2.7.2 使用DRO删除表
(先随便建立一个数据库dt,并建张临时表fuck)
mysql>drop table fuck;
2.7.3 使用DRO删除数据库
mysql>drop database dt;
———————-我————割————————–
2.8 改变数据表的结构
先建立一个新表id (内带一个属性id_name varchar(6)),输入一行数据(xgw)
2.8.1 对表重新命名
alter table 数据表名 rename as 数据表的新名字;
把表id改名成name
mysql> alter table id rename as name;
2.8.2 给数据表增加一个字段
alter table 数据表名 add 字段名称 字段类型;
在改过名的新表name中增加一个字段(id int(6))
mysql>alter table name add id int(6);
增加成功后有如下显示:
Query OK, 1 row affected (0.26 sec)
Records: 1 Duplicates: 0 Warnings: 0
2.8.3 更改已经建立的字段类型
alter table 数据表名 modify 字段名称 字段类型;
把name表中id属性的类型改成10个长度的字符类型
mysql> alter table name modify id varchar(10);
alter talbe语句还有很多功能,具体可查阅MySQL的技术手册。
(the questions,call me anytime! E-mail:tt981@netease.com)
※※※※※※※※※※※※※※Mysql 初级解读 (所用版本:4.1.10)※※※※※※※※※※※※※※
CopyRight By FengLin , 2005-4-29
mysql从服务器能否修改数据,mysql数据库操作新手入门,手把手的教会你 _数据库教程...相关推荐
- mysql数据库应用与开发姜桂洪 课后答案_数据库原理及应用(SQL Server 2012) 王丽艳版 课后习题第一至六章答案...
有很多小伙伴说在网上很难找到这本教材的答案,临近期末复习关头,特将此文章共享到知乎,希望大家考试旗开得胜! 第一章 一.填空题 1.载体 2. 数据库 3.数据库 4.数据库 5.模式 6.例行程序 ...
- MySQL(三) —— 约束以及修改数据表
约束: 1. 约束保证数据的完整性和一致性: 2. 约束分为表级约束和列级约束: 3. 约束类型包括:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREI ...
- mysql怎么用游标修改数据,如何使用mysql 游标?
以下的文章主要介绍的是MySQL游标的使用笔记,其可以用在存储过程的SQL语句,其主要类型主要有以下几种,以下就是对其详细介绍,相信如果你掌握了这项技术,会在以后的学习或是工作中带来很大的帮助. 1. ...
- mysql数据库的行级锁有几种_数据库行级锁和表锁区别
MyISAM和InnoDB MyISAM MyISAM使用B+tree作为索引结构,叶节点存放的是数据地址. MyISAM不支持事务和外键. MyISAM是表锁,对数据库写操作时会锁住整个表,效率低. ...
- mysql数据库应用从入门到精通 王飞飞_《MYSQL数据库应用从入门到精通(第2版)(含盘)》王飞飞 崔洋 贺亚茹著【摘要 书评 在线阅读】-苏宁易购图书...
第1篇 MySQL数据库基础篇 第1章 数据库概述 1.1 关于数据库的基本概念 2 1.1.1 数据管理技术的发展阶段 2 1.1.2 数据库系统阶段涉及的概念 3 1.1.3 数据库技 ...
- MYSQL基本操作(2)-数据表的操作
二.数据库中表的操作 0.mysql数据库中的数据类型 1.增加表 CREATE TABLE table_name ( field1 datatype, field2 ...
- mysql数据库应用与开发姜桂洪 课后答案_数据库应用与开发姜桂洪课后答案
数据库应用与开发姜桂洪课后答案 设有关系模式r(a,b,c,d),其数据依赖集:f={(a,b)→c,c→d},则关系模式r的规范化程度最高达到( ). 谓词all以子表达式最大值决定主表达式结果 行 ...
- VB数据库编程新手入门必会
VB数据库是一门初高中学生就可以用现有知识来学习的一门数据库编程,虽然现在越来越多的公司选择了oracle.mysql.access数据库,但是秉着万变不离其宗的道理,最先接触VB数据库编程还是很有意 ...
- ps如何修改图片大小尺寸_PS新手入门教程:学习如何修改画布的大小
PS新手入门教程:学习如何修改画布的大小.在photoshop中,可以把画布理解为一张白纸,而我们要处理的图像可以理解为这张白纸表面上的画.我们修改画布的大小时,图像并不会随着画布的大小而整体变大或缩 ...
最新文章
- 图像检测中的交并比IoU算法原理
- Struts2(1)简介
- ECMAScript Query实例
- 「操作系统」《自己动手写操作系统》1.1前期准备工作
- 请在请求中携带deviceid参数_实战SpringCloud通用请求字段拦截处理
- 了解一些多线程相关的知识
- 3、以太网基础知识——ARP地址解析协议原理
- Tomcat源码学习(7)-How Tomcat works(转)
- cad布局教程_CAD制图初学入门之常见的CAD打印设置汇总
- 九年级数学解方程50道_初中数学公式中考知识点总结,初三数学上册,九年级数学上册...
- Ubuntu下安装配置java及环境变量
- web前端基础(06css)
- 次表面散射材质_游戏开发者怎么做出以假乱真的画面效果?大气散射渲染了解一下...
- 设正整数n的十进制表示为n=ak……a1a0(0=ai=9,0=i=k,ak!=0),n的个位为起始数字的数字的正负交错之和T(n)=a0+a1+……+(-1)kak,证明:11|n的充分必要...
- 集算器替代存储过程实现报表数据源
- kube-apiserver启动时报错并且不能操作etcd
- android 6.0 官方下载,安卓6.0官方正式版
- Android客户端异常检测
- linux mtr 普通用户执行,Linux网站打开慢之mtr工具探测分析
- List 列表的用法