mysql数据库的sql语句
createtableaa(
typeIdint,
namevarchar(20))
createtablebb(
idint,
namevarchar(20),
typeIdint,
numint,
mint
)
insertintoaavalues(1,'自行车'),(2,'摩托车'),(3,'小汽车'),(4,'其它')
insertintobbvalues
(1,'li',1,1,500),
(2,'li',2,2,5000),
(3,'li',3,1,50000),
(4,'wanger',1,1,450),
(5,'wanger',2,1,5600)selectbb.name,
sum(casewhenaa.name='自行车'thenbb.num
else0
end)as[自行车num],
sum(casewhenaa.name='自行车'thenbb.m
else0
end)as[自行车m],
sum(casewhenaa.name='摩托车'thenbb.num
else0
end)as[摩托车num],
sum(casewhenaa.name='摩托车'thenbb.m
else0
end)as[摩托车m],
sum(casewhenaa.name='小汽车'thenbb.num
else0
end)as[小汽车num],
sum(casewhenaa.name='小汽车'thenbb.m
else0
end)as[小汽车m],
sum(casewhenaa.name='其它'thenbb.num
else0
end)as[其它num],
sum(casewhenaa.name='其它'thenbb.m
else0
end)as[其它m],
sum(bb.num)as[Allnum],
sum(bb.m)as[Allm]
fromaarightjoinbbonaa.typeId=bb.typeId
groupbybb.name
truncatetableaa
droptableaa
truncatetablebb
droptablebb
go
mysql 脚本的方法,请对照这个 sql server脚本去修改,如有疑问,及时沟通
2. MYSQL数据库如何执行SQL语句
select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from Teacher Where TeacherID = @TeacherID create table classname(classname char(50)) insert into classname (classname) values (@a) if (@b is not null) begin insert into classname (classname) values (@b) if (@c is not null) begin insert into classname (classname) values (@c) if (@d is not null) begin insert into classname (classname) values (@d) if (@e is not null) begin insert into classname (classname) values (@e) end end end end select * from classname 以上这些SQL语句能不能转成一个存储过程?我自己试了下 ALTER PROCEDURE Pr_GetClass @TeacherID int, @a char(50), @b char(50), @c char(50), @d char(50), @e char(50) as select @a=DRClass1, @b=DRClass2, @c=DRClass3, @d=DRClass4, @e=DRClass5 from Teacher Where TeacherID = @TeacherID DROP TABLE classname create table classname(classname char(50)) insert into classname (classname) values (@a) if (@b is not null) begin insert into classname (classname) values (@b) if (@c is not null) begin insert into classname (classname) values (@c) if (@d is not null) begin insert into classname (classname) values (@d) if (@e is not null) begin insert into classname (classname) values (@e) end end end end select * from classname 但是这样的话,这个存储过程就有6个变量,实际上应该只提供一个变量就可以了 主要的问题就是自己没搞清楚 @a,@b,@C,@d 等是临时变量,是放在as后面重新做一些申明的,而不是放在开头整个存储过程的变量定义。 (标准化越来越近了):namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 实战SQL语句收集(不断更新中--) 前言:这里将我编程实践中遇到的有价值的sql语句一路记下来,一方面方便自己查用,一方面也夯实下即将遗忘的回忆。整个过程中我会不断更新,直到不能再加为止,同时,这里只记录最实用的咚咚,不效仿学院派的那一套。
3. 怎么连接MYSQL数据库和执行SQL语句
首先创建连接
就创建个Cnnection对象,然后把驱动加上,还有帐号密码什么的!我没连过sql数据库,不知道驱动,你可以在网上搜一下。
给你一个我连接mysql数据库的例子
public Connection Getdata(){//这是连接数据库的一个方法,还可以配置连接池。
Connection con=null;
try {
Class.forName("com.mysql.jdbc.Driver");//加驱动
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root","qq");//数据库路径、端口、库名、数据库用户名和密码
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public void delete(int id){//对数据库进行操作的方法,先调用上面写好的连接!
Connection con=Getdata();
Statement st;
try {
st=con.createStatement();
st.executeUpdate("delete from kaoshi where id="+id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
4. mysql的sql语句能用在别的数据库上吗
不保证一定能用
因为mysql的sql语句除了标准的sql之外还添加了自己的方言,标准sql部分是完全可以在其他数据库中使用的,方言部分就不保证可以兼容其他数据库
比如mysql的分页语法limit,就是mysql的方言,在oracle和sqlserver上就不能用
比如你的查询sql:
select * from 表 where 条件;
这种只包含标准sql语法的语句就可以在其他数据库执行
但是你加了分页语法
select * from 表 where 条件 limit 0,100
这个语句就不能在其他数据库系统上使用了
5. mysql创建库的sql语句
使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
如果数据库名已经存在,则会提示不能创建,这里可以加上“if not exists"从句就可以避免类似错误,如下所示:
CREATE DATABASE IF NOT EXISTS 数据库名;
6. Mysql数据库中,要查询前三条记录,sql语句怎么写
select top 3 * from 表 --标准通用语法,适用于oracle,sql,mysql等
7. mysql数据库执行sql语句怎么写
Mysql常用命令详解
Mysql安装目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqlmp等命令)
启动脚本
/etc/init.d/mysql(启动脚本文件mysql的目录)
系统管理
连接MySQL
格式:
mysql -h 主机地址 -u用户名 -p用户密码
例 1:连接到本机上的 MySQL。
hadoop@ubuntu:~$ mysql
-uroot -pmysql;
例 2:连接到远程主机上的 MYSQL。
hadoop@ubuntu:~$ mysql -h
127.0.0.1 -uroot -pmysql;
修改新密码
在终端输入:mysql -u用户名 -p密码,回车进入Mysql。
>
use mysql;
> update user set password=PASSWORD('新密码') where
user='用户名';
> flush privileges; #更新权限
> quit; #退出
增加新用户
格式:grant select on 数据库.* to
用户名@登录主机 identified by '密码'
举例:
例 1:增加一个用户 test1 密码为
abc,让他可以在任何主机上登录,并对所有数据库有
查询、插入、修改、删除的权限。首先用以 root 用户连入
MySQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to
root@localhost identified by 'mysql';
或者
grant all privileges on *.* to
root@localhost identified by 'mysql';
然后刷新权限设置。
flush privileges;
例
2:如果你不想 root 有密码操作数据库“mydb”里的数据表,可以再打一个命令将密码消掉。
grant
select,insert,update,delete on mydb.* to root@localhost identified by
'';
删除用户
hadoop@ubuntu:~$ mysql
-u用户名 -p密码
mysql>delete from user where user='用户名' and
host='localhost';
mysql>flush privileges;
//删除用户的数据库
mysql>drop
database dbname;
数据库操作
显示所有的数据库
mysql> show databases;(注意:最后有个
s)
创建数据库
mysql> create database
test;
连接数据库
mysql> use
test;
查看当前使用的数据库
mysql> select
database();
当前数据库包含的表信息
mysql>
show tables; (注意:最后有个 s)
删除数据库
mysql> drop database
test;
表操作
备注:操作之前使用“use
<数据库名>”应连接某个数据库。
建表
命令:create
table <表名> (<字段名 1> <类型 1> [,..<字段名 n> <类型
n>]);
例子:
mysql> create table MyClass(
> id int(4) not null
primary key auto_increment,
> name char(20) not null,
> sex int(4)
not null default '0',
> degree double(16,2));
获取表结构
命令: desc 表名,或者show columns from
表名
例子:
mysql> describe MyClass
mysql> desc MyClass;
mysql>
show columns from MyClass;
删除表
命令:drop table <表名>
例如:删除表名为
MyClass 的表
mysql> drop table MyClass;
插入数据
命令:insert into <表名> [( <字段名
1>[,..<字段名 n > ])] values ( 值 1 )[, ( 值 n )]
例子:
mysql> insert
into MyClass values(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang',
96.59);
查询表中的数据
查询所有行
mysql>
select * from MyClass;
查询前几行数据
例如:查看表 MyClass 中前 2 行数据
mysql>
select * from MyClass order by id limit 0,2;
或者
mysql> select * from
MyClass limit 0,2;
删除表中数据
命令:delete from 表名 where 表达式
例如:删除表
MyClass 中编号为 1 的记录
mysql> delete from MyClass where id=1;
修改表中数据
命令:update 表名 set 字段=新值,... where
条件
mysql> update MyClass set name='Mary' where id=1;
在表中增加字段
命令:alter table 表名 add 字段 类型
其他;
例如:在表 MyClass 中添加了一个字段 passtest,类型为 int(4),默认值为 0
mysql> alter
table MyClass add passtest int(4) default '0'
更改表名
命令:rename table 原表名 to 新表名;
例如:在表
MyClass 名字更改为 YouClass
mysql> rename table MyClass to
YouClass;
更新字段内容
命令:update 表名 set
字段名 = 新内容
update 表名 set 字段名 = replace(字段名, '旧内容', '新内容');
例如:文章前面加入 4
个空格
update article set content=concat(' ', content);
数据库导入导出
从数据库导出数据库文件
使用“mysqlmp”命令
首先进入 DOS
界面,然后进行下面操作。
1)导出所有数据库
格式:mysqlmp -u [数据库用户名] -p
-A>[备份文件的保存路径]
2)导出数据和数据结构
格式:mysqlmp -u [数据库用户名] -p
[要备份的数据库名称]>[备份文件的保存路径]
举例:
例 1:将数据库 mydb 导出到 e:\MySQL\mydb.sql
文件中。
打开开始->运行->输入“cmd”,进入命令行模式。
c:\> mysqlmp -h localhost -u
root -p mydb >e:\MySQL\mydb.sql
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
例
2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。
c:\> mysqlmp -h
localhost -u root -p mydb mytable>e:\MySQL\mytable.sql
例 3:将数据库 mydb
的结构导出到 e:\MySQL\mydb_stru.sql 文件中。
c:\> mysqlmp -h localhost -u root -p
mydb --add-drop-table >e:\MySQL\mydb_stru.sql
备注:-h localhost
可以省略,其一般在虚拟主机上用。
3)只导出数据不导出数据结构
格式:
mysqlmp -u [数据库用户名] -p -t
[要备份的数据库名称]>[备份文件的保存路径]
4)导出数据库中的Events
格式:mysqlmp -u [数据库用户名] -p
-E [数据库用户名]>[备份文件的保存路径]
5)导出数据库中的存储过程和函数
格式:mysqlmp -u [数据库用户名]
-p -R [数据库用户名]>[备份文件的保存路径]
从外部文件导入数据库中
1)使用“source”命令
首先进入“mysql”命令控制台,然后创建数据库,然后使用该数据库。最后执行下面操作。
mysql>source
[备份文件的保存路径]
2)使用“<”符号
首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS
界面。最后执行下面操作。
mysql -u root –p < [备份文件的保存路径]
8. MySQL数据库中,如何记录SQL执行语句
-- 打开sql 执行记录功能 set global log_output='TABLE'; -- 输出到表 set global log=ON; -- 打开所有命令 执行记录功能general_log, 所有语句: 成功和未成功的. set global log_slow_queries=ON; -- 打开慢查询 sql 记录 slow_log, 执行成功的: 慢查询语句和未使用索引的语句 set global long_query_time=0.1; -- 慢查询时间限制(秒) set global log_queries_not_using_indexes=ON; -- 记录未使用索引的sql 语句 -- 查询sql 执行记录 select * from mysql.slow_log order by 1; -- 执行成功的:慢查询语句,和未 使用索引的语句 select * from mysql.general_log order by 1; -- 所有语句: 成功和未成功的.-- 关闭sql 执行记录
9. mysql数据库的一个sql语句的写法。
select b.订单号,b.产品,颜色 from (select 订单号,count(颜色) from表b having count(颜色) <=1 ) a1 ,b where a1.订单号=b.订单号 and b.颜色=红;