mysql数据库创建查询修改表

基本操作

1、在Windows命令提示符下运行:
启动MySql服务:net start mysql
停止MySql服务:net stop mysql
卸载:sc delete mysql
一般要先启动MySQL服务器
注意:运行如上命令时,有时会出现“发生系统错误5 拒绝访问”,这是因为当前用户的操作权限太低了,需要我们要以管理员身份来运行cmd程序。同时还要注意服务名称是否是mysql。

2、MySQL登陆
mysql -hlocalhost -u username -puserpassword
注意:密码如果写在命令行的时候一定不能有空格。

3、MySQL常用命令:

放弃正在输入的命令:\c

显示命令清单:\h
退出mysql程序:\q
查看MySQL服务器状态信息:\s


创建库表

1、操作数据库

创建数据库:create database dbname;

显示所有数据库:show databases;
使用MySQL命令

show create database dbname;

可以查看数据库的相关信息(例如MySQL版本ID号、默认字符集等信息)。
选定默认数据库:use dbname;

删除数据库,使用SQL语句 drop database dbname;

2、操作数据库表的结构:

创建数据库表之前必须先使用数据库。

create table students(
id int unsigned not null auto_increment primary key,
name varchar(8) not null,
sex char(4) not null,
age int unsigned not null
);  

使用MySQL命令“desc table_name;”即可查看表名为table_name的表结构。

mysql> desc students;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(8)       | NO   |     | NULL    |                |
| sex   | char(4)          | NO   |     | NULL    |                |
| age   | int(10) unsigned | NO   |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

使用MySQL命令“show create table table_name;”查看名为table_name表的详细信息。

扫描二维码关注公众号,回复: 1710682 查看本文章
mysql> show create table students;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                    |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(8) NOT NULL,
  `sex` char(4) NOT NULL,
  `age` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
  • 添加列
    alter table 表名 add 列名 列数据类型 [after 插入位置];
    在名为age的列后面插入列birthday:
    alter table table_name add birthday date after age;
    添加一列s,放在最前面
    alter table students add s varchar(22) first ;
  • 修改列
    alter table table_name change 列名称 列新名称 新数据类型;
    将表的tel列改名为telphone
    alter table table_name change tel telphone char(13) not null;
    ·如果只对字段的数据类型进行修改
    alter table 表名 modify 字段名 新数据类型;
  • 删除列
    alter table table_name drop 列名称;
  • 重命名表
    alter table table_name rename new_name;
  • 删除整张表
    drop table 表名;

3、查看字符集

查看当前支持的MySQL字符集
show charset;

4、使用MySQL命令

show variables like ‘character%’;
即可查看当前MySQL服务实例使用的字符集。
a、MySQL提供下列MySQL命令可以“临时地”修改MySQL“当前会话的”字符集。

set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_database = gbk;
set character_set_results = gbk;
set character_set_server = gbk;


查询语句

1、模糊查询like
在where 后面使用like
通配符:
% 任意字符
_ 单个字符

2、order by 排序
order by price //默认升序排序
order by price desc //默认降序排序
order by price asc //升序排序
order by rand() //随机排序

3、分组查询 group by
一般情况下,group需与统计函数(聚合函数)一起使用才有意义。
//通过name进行分组
select name,count(*) from student group by name;
//将name=’lisi’分为一组,将其余的分为一组
select count(*) from student group by name='lisi';

4、Having 指定分组统计条件(一般与group by一起使用!)
select name,count(*) from student group by name having count(*)>2;

注意where和having的区别:
where只能对表中的字段名进行筛选
having一般对查询结果进行筛选(也可以直接对字段名进行筛选)

5、sql函数

组函数(聚合函数) 功能描述
用于字符、数值、日期型数据的列函数
MAX(column) 列中最大值
MIN(column) 列中最小值
COUNT(*) 表中行的数量
COUNT(column) 列不为null的行数
COUNT(distinct column) Column指定列中相异值的数量
用于数值数据的列函数
SUM(column) 列中所有值的总和
AVG(column) 列中所有值的平均数

表的操作

1,复制表
复制表结构
create table 新表名 like 原表名;
复制表的内容
INSERT INTO 新表名 select * from 原表名;

2,向表中插入数据
insert into students values(5,'名字5','女',19);

向表中插入多条记录
insert into students (name,sex) values('xiaoming','nan'),('xiaohong','nv');
使用insert….select插入结果
insert into ss (name,sex) select name,sex from students where id=5;

3,替换表中的数据
replace into ss (id,name,sex) values('1','aa','男'),('2','bb','男');
如果主键id为1或2不存在就相当于
insert into ss (id,name) values('1','aa'),('2','bb');
如果存在相同的值则不会插入数据 。

4, 更新表中的数据
UPDATE ss set name='lala' WHERE name='aa';
若省略了where子句,则表示修改表中的所有记录。



没完待续。。。。。。

猜你喜欢

转载自blog.csdn.net/xiao_ma_csdn/article/details/80772937