当前位置:首页 » 操作系统 » c创建数据库的代码

c创建数据库的代码

发布时间: 2022-06-29 01:42:15

㈠ 用C编写数据库怎么写

一个万能的DBHelper就可以解决都事情,直接对数据库中的存储过程进行调用,只需要传入参数就可以和你调用的存储过程就可以。有关万能DBHelper的参考代码如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.sqlClient;

namespace Clock
{
public static class DBHelper
{
private static SqlConnection connection;//这里的SqlConnection 自己写//对数据进行查询时候调用的
public static SqlConnection Connection
{
get
{
string connectionString = "Data Source=PC-Ahsun;Initial Catalog=Clock; uid=sa;pwd=striveahsun";
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}//对数据进行增删改时候调用的
public static int ExecuteCommand(string sql)
{
SqlCommand cmd = new SqlCommand(sql,connection);
int resualt = cmd.ExecuteNonQuery();
return resualt;
}
}
}

㈡ C语言:建立一个学生信息数据库

1)建立结构体及其10个元素的数组
struct Student{
int Num;
char Name[10];
char Sex;
double Score[5];
}student[10];
2)建立一个关于该结构的输入函数,如:
void Input(struct Student stu)
{
printf("Input Name:");
scanf("%d",&stu.Num);
/*等等*/
}
3)建立一个关于该结构的输出函数,如:
void Output(struct Student stu)
{
printf("NUMBER: %d\n",stu.Num);
/*等等*/
}

4)计算某门课的平均分
double Average(struct Student * stu,int course)
{
int i;
double ave=0.0;
for(i=0;i<10;i++)
ave+=stu[i].Score[course];
return ave/10;
}

最后用main函数把有关问题贯穿起来。

㈢ 怎么用c#代码在sql中建立新的数据库

说简单点吧:
首先导入命名空间:using System.Data.SqlClient;
然后定义2个对象:

//1 建立连接对象
SqlConnection con=new SqlConnection();

//2 连接字符串(这里连接的是本地数据库,sa用户登陆,无密码)
con.ConnectionString="server=.;uid=sa;pwd=;";

//3 建立命令执行对象
SqlCommand cmd=new SqlCommand();

//4 给命令执行对象指定连接对象
cmd.Connection=con;

//5 SQL语句(指定要创建数据库的SQL句)
cmd.CommandText="create database mydatabase";

//6 打开数据库连接
con.Open();

//7 执行命令对象里的SQL语句
cmd.ExecuteNonQuery();

//8 执行完后关闭数据库连接
con.Close();

这样数据库就建立好了,要建立自定义的数据库就看你的SQL语句了。

㈣ 如何用C语言建立数据库

用SQLITE吧,像ACCESS.你可以去www.sqlite.org那里下载类库.头文件.以及管理工具.

㈤ 用C语言编写数据库管理系统的代码 !!急求!!!

老兄,你在csdn、pudn上搜索下现成的吧。
你这个是大学的作业吧?日本有个开源的tokyo cabinet应该符合你的要求,而且远远超过,它本身就是NoSQL的数据库……

㈥ c#用代码建立数据库

联接可分为以下几类:
内部联接(典型的联接运算,使用类似于 = 或 <> 的比较运算符)。内部联接包括同等联接和自然联接。

内部联接使用比较运算符根据每个表的通用列中的值匹配两个表中的行。例如,检索 students 和 courses 表中学生标识号相同的所有行。

外部联接。外部联接可以是左向外部联接、右向外部联接或完整外部联接。

在 FROM 子句中可以用下列某一组关键字来指定外部联接:

LEFT JOIN 或 LEFT OUTER JOIN。

左向外部联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某一行在右表中没有匹配行,则在关联的结果集行中,来自右表的所有选择列表列均为空值。

RIGHT JOIN 或 RIGHT OUTER JOIN

右向外部联接是左向外部联接的反向联接。将返回右表的所有行。如果右表的某一行在左表中没有匹配行,则将为左表返回空值。

FULL JOIN 或 FULL OUTER JOIN

完整外部联接将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时,另一个表的选择列表列将包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

交叉联接

交叉联接将返回左表中的所有行。左表中的每一行均与右表中的所有行组合。交叉联接也称作笛卡尔积。

复习完里基础就来看看下面的实际场景来练练手吧。
这是我工作中的实际遇到的场景,这里就使用上面的学生与课程表做个类比吧。

假设现在有几个表,分别是:

学生信息表(student:student_id, student_name,......)、
课程表(courses:courses_id,courses_name,...... )、
还有学生选课表(student_elective_courses:student_id, courses_id)、
学生感兴趣的课程表(student_interest_courses:student_id, courses_id)

现在的需求是:找出关注某个课程的学生关注的其他哪些课程。(这里的关注包括选了课及感兴趣两个概念)

程序化表达:通过某个courses_id可以在两个关系表student_elective_courses、student_interest_courses中得到一些student_id,通过这些student_id又可以在两个表中得到一些courses_id。要求是找出来之后还要按照课程的“人气”排序(关注人数多的排前面,关注人数多一样的时候选课人多的排前面)

举个例子:对于课程“离散数学”,有些同学已经选了这门课在学了,有些同学还没选,但是对这门课有兴趣。当然两类同学本身可能有选修了其他的课程或对其他的课程有兴趣。我们就是想统计这些“其他”的课程。

这种类型的统计在商业上是很有必要挖掘的信息。例如某个网上书城,如果能在用户浏览某本书的时候给出其他浏览或购买这本书的用户还在浏览其他的一些什么书籍,相信会很好的引导用户浏览更多的书。当然销售量也会跟着上去咯,因为“臭味相投”的人还是很多的。

回到原来的问题,这个问题的难点在于要统计的关注人数分布在两个表中。分两次查询再合并结果也是可以的,就是比较麻烦。看看下面的解决脚本

SELECT
a.courses_id,
a.courses_name,
COUNT(DISTINCT b.student_id)+COUNT(DISTINCT c.student_id) as attentionCount,
COUNT(DISTINCT b.student_id) as interestCount

FROM student a LEFT JOIN
student_elective_courses b ON a.courses_id = b.courses_id LEFT JOIN
student_interest_courses c ON a.courses_id = c.courses_id LEFT JOIN
student_elective_courses b1 ON b.student_id = b1.student_id OR c.student_id = b1.student_id LEFT JOIN student_interest_courses c1 ON b.student_id = c1.student_id OR c.student_id = c1.student_id
WHERE (b1.courses_id = 1 OR c1.courses_id = 1) AND a.courses_id <> 1 --这里“1”是可变参数
GROUP BY a.courses_id,a.courses_name
HAVING COUNT(DISTINCT b.student_id)+COUNT(DISTINCT c.student_id) >0
ORDER BY attentionCount DESC, interestCount DESC, a.courses_id
分析说明:
看看关联student_elective_courses b1 的条件:
b.student_id = b1.student_id OR c.student_id = b1.student_id
这个条件得到:选了某些课的学生(表b1)还选了哪些课(表b,条件b.student_id = b1.student_id)以及还关心了哪些课(表c,条件c.student_id = b1.student_id),关联表c1也是同样道理。最后加上个聚和就得到了想要的结果。

㈦ 怎么用C语言结合数据结构的知识来实现数据库的功能,代码怎么设计和编写

用数据结构组织起来就是简单的数据库了,无非就是插入删除修改之类的功能

你说的那些数据库语句,可以用简单的字符串匹配来做
如: strcmp 匹配"Create table"这个字符串 对接下来字符进行提取,直到"(" 以后的关键字符也是用类似方法判断","等实现
提取了需要的关键字符之后就可以进行对应的传参,调用相应操作

㈧ 怎样用C语言编写一个学生数据库系统系统

这里有个现成的!拿去改改就行了!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <winbase.h>
typedef struct node{ /* 定义链表 */
char name[20]; /* 姓名 */
char address[40]; /* 地址 */
char phone[15]; /* 电话 */
long zip; /* 邮编 */
struct node *next;
}add_list;
struct person{ /* 定义一个结构备用 */
char name[20];
char address[50];
char phone[15];
long zip;
};
FILE *fp;
add_list *tail,*head; /* 定义链表尾节点指针和头指针 */
/* 从文件中读出数据生成通讯录链表,如果文件不存在,生成空链表 */
add_list *load(char filename[])
{ add_list *new1,*head;
struct person t;
head=(add_list *)malloc(sizeof(add_list));
tail=head=NULL;
if((fp=fopen(filename,"rb"))==NULL)
return head;
else
if(!feof(fp))
if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list)); /* 连入链表第一个节点 */
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;
head=tail=new1;
new1->next=NULL;
while(!feof(fp)) /* 连入链表其余节点 */
{ if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list));
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;

tail->next=new1;
new1->next=NULL;
tail=new1;
}
}
}
fclose(fp);
return head;
}
/* 自定义函数,进度条 */

void jintiao(void)
{ int i;
for(i=0;i<78;i++) putchar('.');
printf("\r\a");
for(i=0;i<78;i++)
{
if(i==0) putchar('|');
Sleep(100);
printf("\b|>");
}
}
/* 插入一条通讯录记录 */
void insert(add_list **head)
{ add_list * new1;
new1=(add_list *)malloc(sizeof(add_list));
system("cls");
printf("\n请输入姓名:"); getchar();gets(new1->name);
printf("\n请输入地址:"); scanf("%s",new1->address);
printf("\n请输入电话:"); scanf("%s",new1->phone);
printf("\n请输入邮编:"); scanf("%ld",&new1->zip);
if(*head==NULL) /* 表头为空时 */
{ *head=new1;
new1->next=NULL;
tail=new1;
}
else /* 插入到表尾 */
{ tail->next=new1;
new1->next=NULL;
tail=new1;
}
printf("输入完成,按回车键返回......");
getchar();
getchar();
}
/* 将通讯录链表中的内容保存到指定文件中 */
void save(add_list *head,char filename[])
{ add_list *p;
struct person t;
if((fp=fopen(filename,"wb"))==NULL)
{ printf("错误:不能打开文件%s\n",filename);
exit(1);
}
else
{ p=head;
while(p!=NULL)
{ strcpy(t.name,p->name);
strcpy(t.address,p->address);
strcpy(t.phone,p->phone);
t.zip=p->zip;
fwrite(&t,sizeof(struct person),1,fp);
p=p->next;
}
}
fclose(fp);
printf("保存成功,按回车键返回......");
getchar();getchar();
}
/* 显示通讯录内容 */
void display(add_list *head)
{ add_list *p;
p=head;
if(p!=NULL)
printf("姓名:\t\t住址:\t\t邮编:\t\t电话:\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
p=p->next;
}
printf("按回车键返回......");
getchar();getchar();
}
/* 按姓名查询通讯录记录 */
int search(add_list *head)
{ add_list *p;
char name[20];
int flag=0;
printf("请输入要查找的人的姓名:");
getchar();
gets(name);
p=head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0)
{ printf("姓名:\t\t住址:\t\t邮编:\t\t电话:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
flag=1;
}
p=p->next;
}
return flag;
}
/* 按姓名删除一条通讯录记录 */
int delete1(add_list **head)
{ add_list *p,*q,*t;
char name[20],c;
int flag=0;
printf("请输入要删除人的姓名:");
scanf("%s",name);
q=p=*head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0) /* 找到要删除的人 */
{ printf("姓名:\t\t住址:\t\t邮编:\t\t电话:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
printf("真的要删除吗?(Y:是,N:否)\n"); /* 征求意见(删&不删) */
getchar();c=getchar();
if(c=='y'||c=='Y') /* 删除 */
{ if(p==*head)
*head=p->next;
else
q->next=p->next;
t=p;
p=p->next;
free(t);
flag=1;
}
else /* 不删,跳过 */
{ q=p;
p=p->next;
flag=1;
}
}
else /* 没找到,继续 */
{ q=p;
p=p->next;
}
}
return flag;
printf("按回车键返回......");
getchar();
}
/* 显示菜单并选择菜单项 */
int menu_select()
{ char c;
system("cls");
printf("\t\t********************通讯录********************\n");
printf("\t\t\t 1:输入新的通讯记录\n");
printf("\t\t\t\t 2:删除记录\n");
printf("\t\t\t\t 3:查找\n");
printf("\t\t\t\t 4:保存文件\n");
printf("\t\t\t 5:浏览所有通讯记录\n");
printf("\t\t\t\t 6:退出\n");
do{
printf("请输入你的选择(1~~6):");
c=getchar();
}while(c<'1'||c>'6');
return c;
}
/* 主函数 */
int main(void)
{ char filename[20];
char c;
int t;
printf("\n\n\n\n\n\n\t\t\t\t通讯录启动中...\n\n\n\n\n\n\n\n\n\n\n\n\n");
jintiao();
system("cls");
printf("请输入通讯录文件名称:\n");
scanf("%s",filename);
getchar();
head=load(filename);
while(1)
{ c=menu_select();
switch(c)
{ case '1': insert(&head); break;
case '2': t=delete1(&head);
if(!t) printf("记错了吧,没这人!\n按回车键返回......"); getchar();getchar(); break;
case '3': t=search(head);
if(!t) printf("天啊!居然没找到!\n按回车键返回......");getchar(); break;
case '4': save(head,filename); break;
case '5': display(head); break;
case '6': exit(0);
}
}
}

㈨ 创建数据库 完整语句

用如下语句:

createdatabasestuDB
onprimary--默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name='stuDB_data',--主数据文件的逻辑名称
filename='D:stuDB_data.mdf',--主数据文件的物理名称
size=5mb,--主数据文件的初始大小
maxsize=100mb,--主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
logon
(
/*--日志文件的具体描述,各参数含义同上--*/
name='stuDB_log',
filename='D:stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)

注意:路径和文件名等可以自己定义,而且所使用的路径必须要先建立,否则执行语句会报错。

㈩ 怎么用c#代码在sql中建立新的数据库

首先,我们在程序中动态地创建SQL Server数据库。
我们将数据库创建在C:\mysql目录下,所以读者要练习该实例的话得先在C:下创建一个名为mysql的文件夹,否则会出错!创建数据库的关键是函数中的sql对象,通过该对象我们指定了数据库文件的一些基本属性。之后,我们新创建了一个SqlCommand对象,通过该对象我们 就实际完成了对数据库的操作。函数的实现如下:
private void button1_Click(object sender, System.EventArgs e)
{
// 打开数据库连接
if( conn.State != ConnectionState.Open)
conn.Open();
string sql = "CREATE DATABASE mydb ON PRIMARY"
+"(name=test_data, filename = 'C:\\mysql\\mydb_data.mdf', size=3,"
+"maxsize=5, filegrowth=10%) log on"
+"(name=mydbb_log, filename='C:\\mysql\\mydb_log.ldf',size=3,"
+"maxsize=20,filegrowth=1)";
cmd = new SqlCommand(sql, conn);
try { cmd.ExecuteNonQuery(); }
catch(SqlException ae)
{
MessageBox.Show(ae.Message.ToString());
}
}
其次,我们通过CREATE TABLE语句创建基本表,并向该表中添加4条数据。函数的实现如下:
private void button2_Click(object sender, System.EventArgs e)
{
// 打开数据库连接
if( conn.State == ConnectionState.Open)
conn.Close();
ConnectionString ="Integrated Security=SSPI;" + "Initial Catalog=mydb;" + "Data Source=localhost;";
conn.ConnectionString = ConnectionString;
conn.Open();
sql = "CREATE TABLE myTable"+ "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY,"
+ "myName CHAR(50), myAddress CHAR(255), myBalance FLOAT)";
cmd = new SqlCommand(sql, conn);
try {
cmd.ExecuteNonQuery(); // 向表中添加记录
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1001, 'Puneet Nehra', 'A 449 Sect 19, DELHI', 23.98 ) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName,myAddress, myBalance) "+ "VALUES (1002, 'Anoop Singh', 'Lodi Road, DELHI', 353.64) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1003, 'Rakesh M', 'Nag Chowk, Jabalpur M.P.', 43.43) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1004, 'Madan Kesh', '4th Street, Lane 3, DELHI', 23.00) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery(); }
catch(SqlException ae) { MessageBox.Show(ae.Message.ToString()); }
}
完成此操作后,我们可以打开SQL SERVER的企业管理器,查看是否有我们创建的数据库和基本表。

热点内容
jsandroid文件 发布:2024-11-16 03:24:39 浏览:948
在香港怎么买安卓手机 发布:2024-11-16 03:15:37 浏览:762
存储sp 发布:2024-11-16 03:14:08 浏览:849
电视机存储功能 发布:2024-11-16 03:12:50 浏览:869
极品飞车17安卓怎么安装 发布:2024-11-16 03:12:13 浏览:317
长春java 发布:2024-11-16 03:10:47 浏览:577
性价比高的台式电脑怎么配置 发布:2024-11-16 03:04:58 浏览:632
软件测试学python 发布:2024-11-16 02:55:39 浏览:563
sql2008数据同步 发布:2024-11-16 02:33:46 浏览:928
sql2008sa密码 发布:2024-11-16 02:33:45 浏览:199